Quick links

Making Lambda Calculus Smaller, Faster

Report ID:
October 1994
Download Formats:


Some optimizations are speculative: they improve execution speed most
but not all of the time, or they trade off faster execution for an
increase in code size. Other optimizations, such as dead-variable
elimination and algebraic simplification, are guaranteed to both
reduce code size and speed execution. It makes sense to group all of
these ``contracting'' optimizations together in a single phase of a
compiler. This paper describes an efficient implementation of these
optimizations for a language based on the lambda calculus, where a
particularly interesting optimization of this sort is inlining for
those functions called only once. And we prove that our contracting
rewrites are confluent.

Follow us: Facebook Twitter Linkedin