×

Deriving a lazy abstract machine. (English) Zbl 0881.68049

Summary: We derive a simple abstract machine for lazy evaluation of the lambda calculus, starting from Launchbury’s natural semantics. Lazy evaluation here means non-strict evaluation with sharing of argument evaluation, i.e. call-by-need. The machine we derive is a lazy version of Krivine’s abstract machine, which was originally designed for call-by-name evaluation. We extend it with datatype constructors and base values, so the final machine implements all dynamic aspects of a lazy functional language.

MSC:

68Q05 Models of computation (Turing machines, etc.) (MSC2010)
PDFBibTeX XMLCite
Full Text: DOI