Cook’s research focuses on improving the ability of programming languages to facilitate the development of efficient and maintainable software. His early work focused on the semantic and type-theoretic foundations of object-oriented programming and applying these results to improve widely-used programming languages, including Java. His current near-term research involves developing constructs for distributed and data-centric computing. His longer-term research goal is to develop a theory of model-driven development that enables integration of multiple domain-specific languages needed to build complex interactive software systems, including user interfaces, distributed workflow orchestration, authorization policies, and data/synchronization models.
Selected Awards & Honors:
- Remote Batch Invocation for Compositional Object Services, with Ali Ibrahim, Yang Jiao, Eli Tilevich. In Proceedings of the 23rd European Conference Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science 5653, pp. 595-617, 2009.
- Hybrid partial evaluation, with Amin Shali. OOPSLA 2011: 375-390. Best Student Paper.
- AppleScript. In Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages (HOPL III), ACM, 2007.
- Mixin-Based Inheritance, with Gilad Bracha. In Proceedings of the Joint European Conference on Object-Oriented Programming and ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA/ECOOP), 303-311, 1990.
- A Denotational Semantics of Inheritance and Its Correctness, with Jens Palsberg. Inf. Comput. 114(2): 329-350 (1994)
- Member of the ACM, IEEE, and the IFIP Working Groups on Programming Methodology (WG 2.3), Program Generation (WG 2.11), and Language Design (WG 2.16)
- General Conference Chair for ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2010
- Program Chair for ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2006
- Co-organizer and program committee chair First Dynamic Languages Symposium (DLS)
- Steering committee member of the International Conference on Object Databases (ICOODB) and the editorial board of Scalazine
- Program committees:
- ACM Conference on Principles of Programming Languages (POPL)
- European Conference on Object-Oriented Programming (ECOOP)
- ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA)
- Compiler Construction (CC)