William R. Cook

Associate Professor
Office: 
GDC 5.824
Phone: 
(512) 471-9555
Email: 
wcook [at] cs [dot] utexas [dot] edu
Research: 

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: 
  • NSF CAREER Award
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)
Professional Activities: 
  • 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)