| A call-by-need lambda calculus |
| Full text |
Pdf
(1.17 MB)
|
| Source
|
Annual Symposium on Principles of Programming Languages
archive
Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
table of contents
San Francisco, California, United States
Pages: 233 - 246
Year of Publication: 1995
ISBN:0-89791-692-1
|
|
Authors
|
|
Zena M. Ariola
|
Computer & Information Science Department, University of Oregon, Eugene, Oregon
|
|
John Maraist
|
Institut für Programmstrukturen, Universität Karlsruhe, Karlsruhe, Germany
|
|
Martin Odersky
|
Institut für Programmstrukturen, Universität Karlsruhe, Karlsruhe, Germany
|
|
Matthias Felleisen
|
Department of Computer Science, Rice University, Houston, Texas
|
|
Philip Wadler
|
Department of Computing Science, University of Glasgow, Glasgow, Scotland
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 3, Downloads (12 Months): 32, Citation Count: 48
|
|
|
ABSTRACT
The mismatch between the operational semantics of the lambda calculus and the actual behavior of implementations is a major obstacle for compiler writers. They cannot explain the behavior of their evaluator in terms of source level syntax, and they cannot easily compare distinct implementations of different lazy strategies. In this paper we derive an equational characterization of call-by-need and prove it correct with respect to the original lambda calculus. The theory is a strictly smaller theory than the lambda calculus. Immediate applications of the theory concern the correctness proofs of a number of implementation strategies, e.g., the call-by-need continuation passing transformation and the realization of sharing via assignments.
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
|
M. Abadi, L. Cardelli, P.-L. Curien, and :}.-J. L@vy. Explicit substitutions. Journal of Functional Programming, 4(1), 1991.
|
| |
2
|
S. Abramsky. The lazy lambda calculus. In D. Turner, editor, Declarative Programming. Addison-Wesley, 1990.
|
| |
3
|
|
| |
4
|
Z. M. Ariola and M. Felleisen. The call-by-need lambda calculus. Technical Report CIS-TR-94- 23, Department of computer science, University of Oregon, October 1994.
|
| |
5
|
Z. M. Ariola and J. W. KIop. Cyclic lambda graph rewriting. In Proc. of #he Eighth IEEE Symposium on Logic in Computer Science, Paris, 1994.
|
| |
6
|
Z. M. Ariola and J. W. Klop. Equational term graph rewriting. Acta Informahca, 1994.
|
| |
7
|
Arvind, V. Kathail, and K. Pingali. Sharing of computation in functional language implementations. In Proc. International Workshop on High- Level Computer Architecture, 1984.
|
| |
8
|
H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. North-Holland, Amsterdam, 1984.
|
| |
9
|
E. Crank. Parameter-passing and the lambda calculus. Master's thesis, Rice University, 1990.
|
 |
10
|
|
| |
11
|
M. Felleisen and D. P. Friedman. Control operators, the SECD-machine, and the lambda-calculus. in 3rd Working Conference on the Formal Description of Programming Concepts, Ebberup, Denmark, August 1986.
|
| |
12
|
|
 |
13
|
|
| |
14
|
D. P. Friedman and D. S. Wise. Cons should not evaluate its arguments, in Proc. Internatzonal Conference on Automata, Languages and Programming, 1976.
|
 |
15
|
Georges Gonthier , Martín Abadi , Jean-Jacques Lévy, The geometry of optimal lambda reduction, Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.15-26, January 19-22, 1992, Albuquerque, New Mexico, United States
[doi> 10.1145/143165.143172]
|
| |
16
|
V. K. Kathail. Optimal Interpreters for Lambdacalculus Based Funtional Languages. PhD thesis, Dept. of Electrical Engineering and Computer Science, MIT, 1990.
|
 |
17
|
|
 |
18
|
|
| |
19
|
J. Maraist, M. Odersky, and P. Wadler. The callby-need lambda calculus (unabridged). Technical Report 28/94, Universit#it Karlsruhe, Fakult#t fiir informatik, October 1994.
|
 |
20
|
|
| |
21
|
|
| |
22
|
I. A. Mason and C. L. Talcott. Equivalence in functional languages with effects. Journal of Functional Programming, 1(2), 1991.
|
| |
23
|
G. Morrisett, M. Felleisen, and R. Harper. Modeling memory management. Technical report, Departement of computer science, Carnegie Mellon University, forthcoming 1994.
|
| |
24
|
|
| |
25
|
|
| |
26
|
G. D. Plotkin. Call-by-name, call-by-value and the lambda calculus. Theoretical Computer Science, I, 1975.
|
| |
27
|
|
| |
28
|
|
| |
29
|
|
| |
30
|
C. Wadsworth. Semaniics And Pragmatics Of The Lambda-Calculus. PhD thesis, University of Oxford, September 1971.
|
 |
31
|
|
CITED BY 49
|
|
|
|
|
|
|
|
Greg Morrisett , Matthias Felleisen , Robert Harper, Abstract models of memory management, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.66-77, June 26-28, 1995, La Jolla, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
David N. Turner , Philip Wadler , Christian Mossin, Once upon a type, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.1-11, June 26-28, 1995, La Jolla, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Simon Peyton Jones , Mark Shields , John Launchbury , Andrew Tolmach, Bridging the gulf: a common intermediate language for ML and Haskell, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.49-61, January 19-21, 1998, San Diego, California, United States
|
|
|
|
|
|
David Sands , Jörgen Gustavsson , Andrew Moran, Lambda calculi and linear speedups, The essence of computation: complexity, analysis, transformation, Springer-Verlag New York, Inc., New York, NY, 2002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gavin Bierman , Michael Hicks , Peter Sewell , Gareth Stoyle , Keith Wansbrough, Dynamic rebinding for marshalling and update, with destruct-time ?, ACM SIGPLAN Notices, v.38 n.9, p.99-110, September 2003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Peter Sewell , Gareth Stoyle , Michael Hicks , Gavin Bierman , Keith Wansbrough, Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction, Journal of Functional Programming, v.18 n.4, p.437-502, July 2008
|
|
|
|
|
|
|
|
|
|
|