Standard, storeless semantics for ALGOL-style block structure and call-by-name
This paper presents a formulation for the standard semantics of block structure and ALGOL 60 style call-by-name. The main features of this formulation are the use of continuations and streams. Continuations are used in such a way that the semantics can be defined without requiring the idea of an explicit store. Thus the concepts of address or L- and R- values are not used, and simple continuations suffice for describing assignments, iterative control statements, compounds, blocks, and functions using call by value. (Side effects are still allowed via assignments to variables global to functions.) Call-by-name is handled by introducing the idea of multiple continuations. Input-output is treated by using streams. In conjunction with continuations, these allow the formulation of program “pipes” exactly like compound functions.
KeywordsBlock Entry Denotational Semantic Standard Semantic Domain Equation Lambda Calculus
Unable to display preview. Download preview PDF.
- S.K. Abdali, A lambda-calculus model of programming languages. J. Computer Languages 1 (1976), 287–301 + 303-320.Google Scholar
- S.D. Brookes. A fully abstract semantics and a proof system for an ALGOL-like language with sharing. (Included in this volume.)Google Scholar
- W.D. Clinger. Foundations of Actor Semantics, Ph.D. dissertation, Artifical Intelligence Technical Report 633, Massachusetts Institute of Technology (1981), 86.Google Scholar
- D.P. Friedman and D.S. Wise. Applicative Programming for file systems. Proc. ACM Conf. on Language Design for Reliable Software, ACM SIGPLAN Notices 12, 3 (March 1977), 41–55.Google Scholar
- M.J. Gordon. The Denotational Description of Programming Languages, An Introduction, Springer, New York (1979).Google Scholar
- J.V. Halpern, A.R. Meyer, and B.A. Trakhtenbrot. The semantics of local storage, or what makes the free-list free. Conf. Rec. 11th ACM Symp. on Principles of Programming Languages, ISBN 0-89791-125-3 (1983), 245–257.Google Scholar
- P.J. Landin. A correspondence between ALGOL 60 and Church's lambda notation, Part I. Comm. ACM 8, 2 (February 1965), 89–101.Google Scholar
- R. Milne and C. Strachey. A theory of programming language semantics, London, Chapman and Hall (1976).Google Scholar
- P. Naur (ed.) et al. Revised report on the algorithmic language ALGOL 60. Comm. ACM 6, 1 (January 1963), 1–17.Google Scholar
- J.-C. Raoult and R. Sethi. Properties of a notation for combining functions. J. ACM 30, 3 (July 1983), 595–611.Google Scholar
- G.L. Steele and G.J. Sussman. Scheme: an interpreter for extended lambdacalculus. Artificial Intelligence Lab Memo 349, Massachusetts Institute of Technology (December 1975).Google Scholar