The semantics of lazy (and industrious) evaluation

  • Authors:
  • Robert Cartwright;James Donahue

  • Affiliations:
  • -;-

  • Venue:
  • LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
  • Year:
  • 1982

Quantified Score

Hi-index 0.00

Visualization

Abstract

Since the publication of two influential papers on lazy evaluation in 1976 [Henderson and Morris, Friedman and Wise], the idea has gained widespread acceptance among language theoreticians—particularly among the advocates of “functional programming” [Henderson80, Backus78]. There are two basic reasons for the popularity of lazy evaluation. First, by making some of the data constructors in a functional language non-strict, it supports programs that manipulate “infinite objects” such as recursively enumerable sequences, which may make some applications easier to program. Second, by delaying evaluation of arguments until they are actually needed, it may speed up computations involving ordinary finite objects. First, there are several semantically distinct definitions of lazy evaluation that plausibly capture the intuitive notion. Second, non-trivial lazy spaces are similar in structure (under the approximation ordering) to universal domains (as defined by Scott [Scott81, Scott76]) such as the P@@@@ model for the untyped lambda calculus. Third, we prove that neither initial algebra specifications [ADJ76,77] nor final algebra specifications [Guttag78, Kamin80] have the power to define lazy spaces. Fourth, although lazy spaces have the same “higher-order” structure as P@@@@, they nevertheless have an elegant, natural characterization within first order logic. In this paper, we develop a simple, yet comprehensive first order theory of lazy spaces relying on three axiom schemes asserting (1) the principle of structural induction for finite objects; (2) the existence of least upper bounds for directed sets; and (3) the continuity of functions.