| | |
Summary: J. Functional Programming 1 (1): 1--000, January 1993 c
fl Cambridge University Press 1
The CallByNeed Lambda Calculus
Zena M. Ariola y
Computer & Information Science Department
University of Oregon
Eugene, Oregon
Matthias Felleisen z
Department of Computer Science
Rice University
Houston, Texas
Abstract
Plotkin [Theor. Comp. Sci. 1975] showed that the lambda calculus is a good model of the
evaluation process for callbyname functional programs. Reducing programs to constants
or lambda abstractions according to the leftmostoutermost strategy exactly mirrors exe
cution on an abstract machine like Landin's SECD machine. The machinebased evaluator
returns a constant or the token closure if and only if the standard reduction sequence
starting at the same program will end in the same constant or in some lambda abstraction.
However, the calculus does not capture the sharing of the evaluation of arguments that
lazy implementations use to speed up the execution. More precisely, a lazy implementation
|