Incorporating application semantics and control into compilation

Incorporating application semantics and control into compilation

Abstract

Programmers have traditionally been passive users of compilers, rather than active exploiters of their transformational abilities. This paper presents magik, a system that allows programmers to easily and modularly incorporate application-specific extensions into the compilation process.

The magik system gives programmers two significant capabilities. First, it provides mechanisms that implementors can use to incorporate application semantics into compilation, thereby enabling both optimizations and semantic checking impossible by other means. Second, since extensions are invoked during the translation from source to machine code, code transformations (such as software fault isolation~\cite{wahbe:sandbox}) can be performed with full access to the symbol and data flow information available to the compiler proper, allowing them both to exploit source semantics and to have their transformations (automatically) optimized as any other code.

Complete Paper (postscript, 12 pages)


Other Publications

Dawson Engler
engler@lcs.mit.edu