Prof. Benjamin Pierce / The Science of Deep Specification, Past and Future
Abstraction and modularity underlie all successful hardware and software systems: We build complex artifacts by decomposing them into parts that can be understood separately. Modular decomposition, in turn, depends crucially on the artful choice of interfaces between the pieces of a system. As they become richer, such interfaces can serve as specifications of system components or layers. Rich specifications, based on formal logic, can significantly reduce the costs of system implementation and evolution by identifying vulnerabilities, helping programmers understand the behavior of new components, facilitating rigorous change-impact analysis, and supporting maintainable, machine-checked proofs that components are internally correct and fit together correctly. We call these deep specifications.
Deep specifications describe complex component behaviors in detail, they are connected to both implementations and clients; they are written mathematical notations with clear semantics; and they are connected directly to the source code of implementations via machine-checkable proofs or property-based random testing. These requirements impose strong functional correctness conditions on individual components and permit them to be connected together with rigorous composition theorems.
This talk presents recent achievements and ongoing efforts in the Science of Deep Specification project at Penn, Princeton, Yale, and MIT, whose goal has been to engineer a rich, interconnected collection of deep specifications for critical system software components.
About the Speaker
Benjamin Pierce is Henry Salvatori Professor of Computer and Information Science at the University of Pennsylvania and a Fellow of the ACM. His research interests include programming languages, type systems, language-based security, computer-assisted formal verification, differential privacy, and synchronization technologies. He is the author of the widely used graduate textbooks Types and Programming Languages and Software Foundations. He has served as co-Editor in Chief of the Journal of Functional Programming, as Managing Editor for Logical Methods in Computer Science, and as editorial board member of Mathematical Structures in Computer Science, Formal Aspects of Computing, and ACM Transactions on Programming Languages and Systems. He is the lead designer of the Unison file synchronizer and co-designer of the Clowdr virtual conference platform.