• Publications
  • Influence
Program Analysis and Specialization for the C Programming Language
This thesis presents an automatic partial evaluator for the Ansi C programming language, and proves that partial evaluation at most can accomplish linear speedup, and develops an automatic speedup analysis. Expand
Compiling with proofs
This dissertation shows how standard decision procedures can be adapted so that they can produce detailed proofs of the proved predicates and also how these proofs can be encoded compactly and checked efficiently. Expand
Safe kernel extensions without run-time checking
PCC binaries can be executed with no run-time over-head, beyond a one-time cost of 1 to 3 milliseconds for validating the enclosed proofs, and are formally guaranteed to be safe and are faster than packet filters created using Berkeley Packet Filters, Software Fault Isolation, or safe languages such as Modula-3. Expand
Safe, Untrusted Agents Using Proof-Carrying Code
The design and a typical implementation of Proof-Carrying Code are described, where the language used for specifying the safety properties is first-order predicate logic and examples are memory safety and compliance with data access policies, resource usage bounds, and data abstraction boundaries. Expand
The design and implementation of a certifying compiler
This paper presents the design and implementation of a compiler that translates programs written in a type-safe subset of the C programming language into highly optimized DEC Alpha assembly languageExpand
A certifying compiler for Java
The experiment shows that it is possible to implement a certifying native-code compiler for a large subset of the Java programming language and that generating proofs of the target code helps to identify compiler bugs, many of which would have been difficult to discover by testing. Expand
Optimizing ML with run-time code generation
This work describes the design and implementation of a compiler that automatically translates ordinary programs written in a subset of ML into code that generates native code at run time, and demonstrates how compile-time specialization can reduce the cost of run-time code generation by an order of magnitude. Expand
Generational stack collection and profile-driven pretenuring
This paper presents two techniques for improving garbage collection performance: generational stack collection and profile-driven pretenuring. The first is applicable to stack-based implementationsExpand
Realistic compiler generation
  • Peter Lee
  • Computer Science
  • Foundations of Computing Series
  • 1 August 1989
In this book Peter Lee provides a complete description and survey of the field of semantics based compiler generation and presents a new method for expressing the formal semantics of programmingExpand
Meld: A declarative approach to programming ensembles
Meld is a declarative language, based on P2, a logic- programming language originally designed for programming overlay networks that greatly simplifies the thought process needed for programming large ensembles. Expand