|
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Goguen, J., J. Thatcher and E. Wagner. An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types. IBM Research Report RC-6478, Yorktown Heights, 1976.
|
 |
2
|
|
 |
3
|
|
| |
4
|
Barendregt, H. The Type Free Lambda Calculus. Handbook of Mathematical Logic, J. Barwise. ed., North-Holland, Amsterdam, pp. 1091-1132.
|
 |
5
|
|
| |
6
|
Boyer, R.S., and Moore, JS. A Computational Logic, Academic Press, New York, 1979.
|
| |
7
|
Cartwright, R. User-Defined Data Types as an Aid to Verifying LISP Programs. Automata, Languages and Programming. Edinburgh Press, 1976.
|
 |
8
|
|
| |
9
|
Enderton, H.B. A Mathematical Introduction to Logic. Academic Press, New York, 1972.
|
| |
10
|
Friedman, D. and D. Wise. CONS Should Not Evaluate Its Arguments. Automata, Languages and Programming, Edinburgh University Press, 1976, pp.257-284.
|
| |
11
|
Giles. An LCF Axiomatization of Lazy Lists. CSR-31-78. Computer Science Department, Edinburgh University.
|
| |
12
|
Gordon, M., R. Milner and C. Wadsworth. Edinburgh LCF. CSR-11-77. Computer Science Department, Edinburgh University.
|
| |
13
|
Guttag, J. and J. Horning. The Algebraic Specification of Abstract Data Types. Acta Informatica 10 (1978), pp. 27-52.
|
| |
14
|
|
 |
15
|
|
 |
16
|
|
| |
17
|
Scott, D. Data Types as Lattices. SIAM J. Computing 5 (1976), pp. 522-587.
|
| |
18
|
Scott, D. Lectures on a Mathematical Theory of Computation. Technical Monograph PRG-19, Oxford University Computing Laboratory, Oxford.
|
| |
19
|
|
CITED BY 6
|
|
|
|
|
|
|
|
Hans-J. Boehm , Robert Cartwright , Mark Riggle , Michael J. O'Donnell, Exact real arithmetic: a case study in higher order programming, Proceedings of the 1986 ACM conference on LISP and functional programming, p.162-173, August 1986, Cambridge, Massachusetts, United States
|
|
|
|
|
|
|
|
|
|
|