|
ABSTRACT
We define an extension of the call-by-name lambda calculus with additional constructs and reduction rules that represent mutable variables and assignments. The extended calculus has neither a concept of an explicit store nor a concept of evaluation order; nevertheless, we show that programs in the calculus can be implemented using a single-threaded store. We also show that the new calculus has the Church-Rosser property and that it is a conservative extension of classical lambda calculus with respect to operational equivalence; that is, all algebraic laws of the functional subset are preserved.
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
|
H. Barendregt. The Lambda Calculus: Its Syntax and Semantics, volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland, 1984.
|
 |
2
|
|
 |
3
|
|
| |
4
|
|
 |
5
|
|
| |
6
|
M. Felleisen and R. Hieb. The revised report on the syntactic theories of sequential control and state. Technical Report Rice COMP TR89-100, Rice University, June 1989. To Appear in Theoretical Computer Science.
|
| |
7
|
J. Field. A simple rewriting semantics for realistic imperative programs and its application to program analysis. In PEPM'92: A CM SIGPLAN Workshop on Partial Evaluation and Semantics.Based Program Manipulation, pages 98-107, June 1992. Yale University Research Report YALEU/DCS/RR-909.
|
| |
8
|
J. GuzmAn and P. Hudak. Single-threaded polymorphic lambda calculus. In IEEE Symposium on Logic in Computer Science, pages 333-343, June 1990.
|
 |
9
|
C. A. R. Hoare , I. J. Hayes , He Jifeng , C. C. Morgan , A. W. Roscoe , J. W. Sanders , I. H. Sorensen , J. M. Spivey , B. A. Sufrin, Laws of programming, Communications of the ACM, v.30 n.8, p.672-686, Aug. 1987
[doi> 10.1145/27651.27653]
|
| |
10
|
P. Hudak and D. Robin. Mutable abstract datatypes - or- how to have your state and munge it too. Research Report YALEU/DCS/RR-914, Yale University, Department of Computer Science, July 1992.
|
| |
11
|
|
| |
12
|
i. Mason and C. Talcott. Equivalence in functional languages with side effects. Journal of Functional Programming, 1(3):287-327, July 1991.
|
| |
13
|
|
| |
14
|
M. Odersky and D. Robin. The unexpurgated callby-name, assignment, and the lambda-calculus. Research Report YALEU/DCS/RR-930, Department of Computer Science, Yale University, New Haven, Connecticut, October 1992.
|
| |
15
|
G. D. Plotkin. Call-by-name, call-by-value, and the ,k-calculus. Theoretical Computer Science, 1:125-159, 1975.
|
| |
16
|
J. C. Reynolds. Preliminary design of the programming language Forsythe. Technical Report CMU-CS-88-159, Carnegie Mellon University, June 1988.
|
 |
17
|
|
| |
18
|
|
| |
19
|
j.-P. Talpin and P. Jouvelot. Type, effect and region reconstruction in polymorphic functional languages. In Workshop on Static Analysis of Equational, Functional, and Logic Programs, Bordeaux, Oct. 1991.
|
 |
20
|
|
 |
21
|
|
 |
22
|
|
|