Deriving a lazy abstract machine

  • Authors:
  • Peter Sestoft

  • Affiliations:
  • Department of Mathematics and Physics, Royal Veterinary and Agricultural University, Thorvaldsensvej 40, DK-1871 Frederiksberg C, Denmark (e-mail: sestoft@dina.kvl.dk)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.