Skip to main content

Standard, storeless semantics for ALGOL-style block structure and call-by-name

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 239))

Abstract

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.

Research supported (in part) by the National Science Foundation under Grant Number DCR84-05241.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. S.K. Abdali, A lambda-calculus model of programming languages. J. Computer Languages 1 (1976), 287–301 + 303-320.

    Google Scholar 

  2. S.D. Brookes. A fully abstract semantics and a proof system for an ALGOL-like language with sharing. (Included in this volume.)

    Google Scholar 

  3. W.D. Clinger. Foundations of Actor Semantics, Ph.D. dissertation, Artifical Intelligence Technical Report 633, Massachusetts Institute of Technology (1981), 86.

    Google Scholar 

  4. 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 

  5. M.J. Gordon. The Denotational Description of Programming Languages, An Introduction, Springer, New York (1979).

    Google Scholar 

  6. 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 

  7. 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 

  8. R. Milne and C. Strachey. A theory of programming language semantics, London, Chapman and Hall (1976).

    Google Scholar 

  9. P. Naur (ed.) et al. Revised report on the algorithmic language ALGOL 60. Comm. ACM 6, 1 (January 1963), 1–17.

    Google Scholar 

  10. J.-C. Raoult and R. Sethi. Properties of a notation for combining functions. J. ACM 30, 3 (July 1983), 595–611.

    Google Scholar 

  11. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Austin Melton

Rights and permissions

Reprints and permissions

Copyright information

© 1986 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Abdali, S.K., Wise, D.S. (1986). Standard, storeless semantics for ALGOL-style block structure and call-by-name. In: Melton, A. (eds) Mathematical Foundations of Programming Semantics. MFPS 1985. Lecture Notes in Computer Science, vol 239. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16816-8_22

Download citation

  • DOI: https://doi.org/10.1007/3-540-16816-8_22

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-16816-4

  • Online ISBN: 978-3-540-44861-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics