|
ABSTRACT
It is well known that adding side effects to functional languages changes the operational equivalences of the language. We develop a new language construct, encap, that forces imperative pieces of code to behave purely functionally, i.e.,without any visible side effects. The coercion operator encap provides a means of extending the simple reasoning principles for equivalences of code in a functional language to a language with side effects. In earlier work, similar coercion operators were developed, but their correctness required the underlying functional language to include parallel operations. The coercion operators developed here are simpler and are proven correct for purely sequential languages. The sequential setting requires the construction of fully abstract models for sequential call-by-value languages and the formulation of a weak form of “monad” suitable for expressing the semantics of call-by-value languages with side effects.
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
|
|
| |
2
|
S. Abramsky, R. Jagadeesan, and P. Malacaria. Games and full abstraction for PCF: preliminary announcement. Unpublished, 1993.
|
| |
3
|
|
 |
4
|
|
 |
5
|
H. Abelson , R. K. Dybvig , C. T. Haynes , G. J. Rozas , N. I. Adams, IV , D. P. Friedman , E. Kohlbecker , G. L. Steele, Jr. , D. H. Bartley , R. Halstead , D. Oxley , G. J. Sussman , G. Brooks , C. Hanson , K. M. Pitman , M. Wand , William Clinger , Jonathan Rees, Revised report on the algorithmic language scheme, ACM SIGPLAN Lisp Pointers, v.IV n.3, p.1-55, July, 1991
[doi> 10.1145/382130.382133]
|
| |
6
|
P.-L. Curien. Observable sequential algorithms on concrete data structures. In Proceedings, Seventh Annual IEEE Symposium on Logic in Computer Science, pages 432-443, 1992.
|
 |
7
|
|
 |
8
|
|
| |
9
|
|
| |
10
|
J. C. Guzm~n and A. Su~rez. A type system for exceptions. In Record of the 199'4 A CM SIGPLAN Work.. shop on ML and its Applications, pages 127-135, 1994. Available as INRIA Technical Report 2265.
|
 |
11
|
|
| |
12
|
P. Hudak. Continuation-based mutable abstract datatypes, or how to have your state and munge it too. Technical Report Research Report YALEU/DCS/RR- 914, Yale University, 1992.
|
| |
13
|
P. Hudak, S. L. Peyton Jones, P. L. Wadler, Arvind, B. Boutel, J. Fairbairn, J. Fasel, M. Guzman, K. Hammond, J. Hughes, T. Johnsson, R. Kieburtz, R. S. Nikhil, W. Partain, and J. Peterson. Report on the functional programming language Haskell, Version 1.2. A CM SIGPLAN Notices, May 1992.
|
| |
14
|
|
| |
15
|
M. Hyland and L. Ong. Dialogue games and innocent strategies: An approach to intensional full abstraction to PCF (preliminary announcement). Unpublished, 1993.
|
 |
16
|
|
 |
17
|
|
 |
18
|
|
| |
19
|
J. M. Lucassen. Type.checking Fluent Languages. PhD thesis, Dept. Electrical Engineering & Computer Sci., M#ssachusetts Institute of Technology, 1987. Available as technical report MIT/LCS/TR-408 (MIT Laboratory for Computer Science).
|
 |
20
|
|
| |
21
|
R. Mflner. Fully abstract models of the typed lambda calculus. Theoretical Computer Sci., 4:1-22, 1977.
|
| |
22
|
R. Mflner. Fully abstract models of the typed lambda Standard ML. MIT Press, 1990.
|
| |
23
|
|
| |
24
|
G. Morrisett. Generalizing first-class stores. In A CM SIGLPLAN Workshop on State #n Programming Languages, p#ges 73-87, 1993. Available as Yale Technical Report YALEU/DCS/RR-968.
|
 |
25
|
Martin Odersky , Dan Rabin , Paul Hudak, Call by name, assignment, and the lambda calculus, Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.43-56, March 1993, Charleston, South Carolina, United States
[doi> 10.1145/158511.158521]
|
| |
26
|
|
 |
27
|
|
| |
28
|
C.-H. L. Ong. The Lazy Lambda Calculus: An Investigation into the Foundations of Functional Programruing. PhD thesis, Imperial College, University of London, 1988.
|
 |
29
|
|
| |
30
|
G. D. Plotkin. Call-by-name, call-by-value and the A- calculus. Theoretical Computer Sci., 1:125-159, 1975.
|
| |
31
|
G. D. Plotkin. LCF considered as # programming language. Theoretical Computer Sci., 5:223-257, 1977.
|
 |
32
|
|
| |
33
|
J. C. Reynolds. The essence of Algol. In J. W. de Bakker and J. C. van Vfiet, editors, Algomthmic Languages, pages 345-372. North-Holland, Amsterdam, 1981.
|
| |
34
|
|
| |
35
|
|
 |
36
|
|
 |
37
|
|
| |
38
|
J. G. Riecke and R. Visw#nathan. Full abstraction for call-by-value sequential languages. Unpublished manuscript, 1993.
|
 |
39
|
|
| |
40
|
|
| |
41
|
J.-P. Talpin. Theoretical and Practical Aspects of Type and Effect Inference. PhD thesis, University of Paris VI, t993.
|
| |
42
|
J.-P. Talpin and P. Jouvelot. Polymorphic type, region #nd effect inference. Journal of Functional Programming, 2:245-271, 1992.
|
 |
43
|
|
CITED BY 8
|
|
|
|
|
|
|
|
Martín Abadi , Anindya Banerjee , Nevin Heintze , Jon G. Riecke, A core calculus of dependency, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.147-160, January 20-22, 1999, San Antonio, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|