Realistic Compilation by Program Transformation


Richard Kelsey and Paul Hudak


Using concepts from denotational semantics, we have produced a very simple compiler that can be used to compile standard programming languages and produces object code as efficient as that of production compilers.  The compiler is based entirely on source-to-source transformations performed on programs that have been translated into an intermediate language resembling the lambda calculus.  The output of the compiler, while still in the intermediate language, can be trivially translated into machine code for the target machine.  The compilation by transformation strategy is simple: the goal is to remove any dependencies on the intermediate language semantics that the target machine cannot implement directly.  Front-ends have been written for Pascal,
BASIC, and Scheme and the compiler produces code for the MC68020 microprocessor.


    ,author={Kelsey, R. and Hudak, P.}
    ,title={Realistic Compilation by Program Transformation}
    ,booktitle={ACM Symposium on Principles of Programming Languages}