The Chalmers Lazy-ML Compiler

Abstract
We present the principle and pragmatics of a compiler for Lazy ML, a lazy and purely functional variant of ML, developed at Chalmers University of Technology. The aim has been to develop an implementation that enables efficient execution on today's computers. The compiler itself has been written almost entirely in Lazy ML. We first briefly describe the Lazy ML language, in particular with respect to pattern matching, modules and separate compilation, and input/output. A programming example is given. We outline the general structure of the LML compiler and then describe in some depth the technical details of program transformation phases and the G-machine, the abstract machine underlying the implementation. Performance issues are also discussed. We describe some application programs written in LML, and the experience gained from them.