Compiling Laziness using Projections

Ross Paterson. In Static Analysis Symposium, Aachen, Germany, September 1996, LNCS vol. 1145, pages 255-269.


Projection-based strictness analysis is a powerful technique, able to cope with non-flat domains and latent demand. By analysing the projections as embedding-projection pairs, we develop an algorithm to translate lazy functions into a strict functional language with explicit closures. The translated functions typically operate on simpler types than the originals, in particular types containing fewer liftings, which correspond to the operational notion of closures. Like the analysis on which it is based, our algorithm is restricted to first-order functions.


gzipped PostScript, gzipped DVI, BibTeX.


In the bottom line of equation (19), `v' should be replaced by `let y = x in v'.