Computer Augmented Program Engineering
University of Pennsylvania
Thursday, February 2, 2012
11:00 a.m., Room 1000 SEO
Despite significant advances in programming languages and verification tools, programming remains a tedious, error-prone, and expensive activity. This talk surveys an emerging approach to software design in which a programmer and an automated program-synthesis tool collaborate to generate software that meets its specification. A programmer expresses her insights about the design using synthesis artifacts of different kinds such as programs that may contain ambiguities, declarative specifications of high-level requirements, positive and negative examples of desired behaviors, and optimization criteria for selecting among alternative implementations. The synthesis tool composes these different views about the structure and functionality of the system into a unified concrete implementation using a combination of algorithmic techniques such as decision procedures for constraint-satisfaction problems, iterative schemes for abstraction and refinement, and data-driven learning. We will illustrate this approach using a number of projects, including one at Penn focusing on design of cache coherence protocols from a mix of concrete and symbolic execution scenarios.
Rajeev Alur is Zisman Family Professor of Computer and Information Science at University of Pennsylvania. He obtained his bachelor’s degree in computer science from Indian Institute of Technology at Kanpur in 1987, and PhD in computer science from Stanford University in 1991. Before joining Penn in 1997, he was with Computing Science Research Center in Bell Laboratories. The main focus of his research is foundations and tools for design and analysis of software and embedded systems. He is a Fellow of the ACM, a Fellow of the IEEE, and an Alfred P. Sloan Faculty Fellow.