Speaker:  Peter Lee
Affiliation:  Carnegie Mellon University and Cedilla Systems Incorporated
Date:  10/21/99 - Thursday
Time & Location:  4:!5PM, 101 Phillips
Title;  Taking Programming Language Theory to Practice

Our understanding of programs and programming languages has improved tremendously in recent years. Progress has been especially good in the mathematical foundations, including the areas of formal semantics, type theory, and applications of logic. Unfortunately, the lag time between advancements in theory and their practical applications is usually measured in decades, and of course the marketplace is rarely patient enough to wait this long. As a result, practitioners are forced again and again to use less than satisfactory technologies. Developing and maintaining software thus continues to be an unnecessarily expensive and perilous undertaking. Indeed, there is every indication that the situation is rapidly getting worse, as the scope and complexity of computer-based systems grows exponentially while our ability to create software for these systems remains essentially stagnant.

For the past year, I have been involved in a "technology transfer" experiment to take ideas based on sound theoretical principles directly out of the laboratory and into commercial use. In this lecture, I will describe this project and how it is based on research on proof-carrying code (PCC) and certifying compilers carried out by the CMU Fox Project. Much of this lecture will be an assessment of the practical viability of PCC, both in technical and in business terms. Ultimately, I will argue  the importance of shortening the gap between theory and practice, despite the risk that one might end up with mostly impractical uses of outdated theory. I believe that practical software problems give guidance for further development of the theory, and at the same time the theory inspires novel solutions to practical problems.