Button to scroll to the top of the page.

William R Cook

Programming Languages and Implementation, Model Driven Engineering

Research Interests

Programming languages, modeling languages, domain-specific languages, strategic programming, interfacing programming languages and databases, distributed computing and web services, software engineering, type theory, mixins, object-oriented programming, web-based information systems.

Dr. 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 Publications:

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)

Recent Papers

Feature-Oriented Programming with Object Algebras
Bruno C.d.S. Oliveira, Tijs van der Storm, Alex Loh and William R. Cook
Accepted to ECOOP 2013

MRI: Modular reasoning about interference in incremental programming. (PDF)
Bruno C.d.S. Oliveira, Tom Schrijvers and William R. Cook
Journal of Functional Programming, vol. 22 (2012), pp. 797-­852 doi:10.1017/S0956796812000354

Meta-Theory à la Carte
Benjamin Delaware, Bruno C. d. S. Oliveira, Tom Schrijvers
POPL 2013.

Object Grammars: Compositional & Bidirectional Mapping Between Text and Graphs (Ensō Papers 2 of 6)
Tijs van der Storm, William R. Cook, Alex Loh
International Conference on Software Language Engineering (SLE), 2012.

Managed Data: Modular Strategies for Data Abstraction (Ensō Papers 1 of 6)
Alex Loh, Tijs van der Storm, and William R. Cook
Onward! 2012 .

Theory and Techniques for Synthesizing Space-Efficient Breadth-First Search Algorithms
Srinivas Nedunuri, Douglas R. Smith, William R. Cook
Formal Methods (FM), 2012

Theory and Techniques for Synthesizing a Family of Graph Algorithms
Srinivas Nedunuri, William R. Cook and Douglas R. Smith
1st Workshop on Synthesis (SYNT), 2012

Functional Programming with Structured Graphs
Bruno C. d. S. Oliveira and William R. Cook
International Conference on Functional Programming(ICFP), 2012.

Extensibility for the Masses: Practical Extensibility with Object Algebras
Bruno C. d. S. Oliveira and William R. Cook
European Conference on Object-Oriented Programming (ECOOP), 2012 (Best Paper)

Remote Batch Invocation for SQL Databases
Ben Wiedermann and William R. Cook
The 13th International Symposium on Database Programming Languages (DBPL), 2011.

Hybrid Partial Evaluation
Amin Shali and William R. Cook
OOPSLA 2011 (Best Student Paper)

Cost-Based Learning for Planning
Srinivas Nedunuri, William R. Cook, and Douglas R. Smith
3rd workshop on Learning and Planning (PAL) at ICAPS 2011

Theorem Proving for Product Lines
Benjamin Delaware, William R. Cook, and Don Batory

  • NSF CAREER Award