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