Skip to main content

A reduction semantics for imperative higher-order languages

  • Conference paper
  • First Online:
Book cover PARLE Parallel Architectures and Languages Europe (PARLE 1987)

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

Abstract

Imperative higher-order languages are a highly expressive programming medium. Compared to functional programming languages, they permit the construction of safe and modular programs. However, functional languages have a simple reduction semantics, which makes it easy to evaluate program pieces in parallel. In order to overcome this dilemma, we construct a conservative extension of the λ-calculus that can deal with control and assignment facilities. This calculus simultaneously provides an algebraic reasoning system and an elegant reduction semantics of higher-order imperative languages. We show that the evaluation of applications can still take advantage of parallelism and that the major cost of these evaluations stems from the necessary communication for substitutions. Since this is also true for functional languages, we conjecture that if a successful parallel evaluation scheme for functional languages is possible, then the same strategy will also solve the problem of parallel evaluations for imperative programming languages.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Backus, J. Can programming be liberated from the von Neumann style? A functional style and its algebra of programs, Comm. ACM21(8), 613–641.

    Google Scholar 

  2. Barendregt, H.P.The Lambda Calculus: Its Syntax and Semantics, North-Holland, Amsterdam, 1981.

    Google Scholar 

  3. Clinger, W.D., D.P. Friedman, M. Wand. A scheme for a higher-level semantic algebra, in Algebraic Methods in Semantics, J. Reynolds, M. Nivat (Eds.), 1985, 237–250.

    Google Scholar 

  4. Dennis, J.B. Programming generality, parallelism and computer architectures, Information Processing68, 1969, 484–492.

    Google Scholar 

  5. Felleisen, M., D.P. Friedman, B. Duba, J. Merrill. Beyond continuations, Technical Report No 216, Indiana University Computer Science Department, 1987.

    Google Scholar 

  6. Felleisen, M., D.P. Friedman. Control operators, the SECD-machine, and the λ-calculus, Formal Description of Programming Concepts III, North-Holland, Amsterdam, 1986, to appear.

    Google Scholar 

  7. Felleisen, M., D.P. Friedman. A calculus for assignments in higher-order languages, Proc. 14th ACM Symp. Principles of Programming Languages, 1987, 314–325.

    Google Scholar 

  8. Felleisen, M. Reflections on Landin's J-operator: a partly historical note, Computer Languages, 1987, to appear.

    Google Scholar 

  9. Friedman, D.P., C.T. Haynes, E. Kohlbecker. Programming with continuations, in Program Transformations and Programming Environments, P. Pepper (Ed.), Springer-Verlag, 1985, 263–274.

    Google Scholar 

  10. Haynes, C.T., D.P. Friedman, M. Wand. Obtaining coroutines from continuations, Computer Languages11(3/4), 1986, 143–153.

    Article  Google Scholar 

  11. Haynes, C. T. Logic continuations, Proc. Third International Conf. Logic Programming, London, Springer-Verlag, 1986, 671–685; also to appear in Journal of Logic Programming, 1987.

    Google Scholar 

  12. Henson, M.C., R. Turner. Completion semantics and interpreter generation, Proc. 9th ACM Symp. Principles of Programming Languages, 1982, 242–254.

    Google Scholar 

  13. Kohlbecker, E, M. Wand. Macro-by-example: deriving syntactic transformations from their specifications, Proc. 14th ACM Symp. Principles of Programming Languages, 1987, 77–85.

    Google Scholar 

  14. Landin, P.J. The next 700 programming languages, Comm. ACM9(3), 1966, 157–166.

    Article  Google Scholar 

  15. Landin, P. J. An abstract machine for designers of computing languages, Proc. IFIP Congress, 1965, 438–439.

    Google Scholar 

  16. Landin, P.J. The mechanical evaluation of expressions, Computer Journal6(4), 1964, 308–320.

    Google Scholar 

  17. Magó, G.A. A network of microprocessors to execute reduction languages, Int. Journal of Computer and Information Sciences8, 1979, 349–385; 435–471.

    Article  Google Scholar 

  18. Mason, I. A.The Semantics of Destructive Lisp, Ph.D. dissertation, Stanford University, 1986.

    Google Scholar 

  19. Plotkin, G.D. A structural approach to operational semantics, Technical Report DAIMI FN-19, Aarhus University, Computer Science Department, 1981.

    Google Scholar 

  20. Plotkin, G.D. Call-by-name, call-by-value, and the λ-calculus, Theoretical Computer Science1, 1975, 125–159.

    Article  Google Scholar 

  21. Reynolds, J.C. Definitional interpreters for higher-order programming languages, Proc. ACM Annual Conference, 1972, 717–740.

    Google Scholar 

  22. Reynolds, J.C. GEDANKEN—A simple typeless language based on the principle of completeness and the reference concept, Comm. ACM13(5), 1970, 308–319.

    Article  Google Scholar 

  23. Sussman G.J., G. Steele. Scheme: An interpreter for extended lambda calculus, Memo 349, MIT AI-Lab, 1975.

    Google Scholar 

  24. Talcott, C.The Essence of Rum—A Theory of the Intensional and Extensional Aspects of Lisptype Computation, Ph.D. dissertation, Stanford University, 1985.

    Google Scholar 

  25. Wand, M., D.P. Friedman. Compiling lambda-expressions using continuations and factorizations, Computer Languages3, 1978, 241–263.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

J. W. de Bakker A. J. Nijman P. C. Treleaven

Rights and permissions

Reprints and permissions

Copyright information

© 1987 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Felleisen, M., Friedman, D.P. (1987). A reduction semantics for imperative higher-order languages. In: de Bakker, J.W., Nijman, A.J., Treleaven, P.C. (eds) PARLE Parallel Architectures and Languages Europe. PARLE 1987. Lecture Notes in Computer Science, vol 259. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-17945-3_12

Download citation

  • DOI: https://doi.org/10.1007/3-540-17945-3_12

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-17945-0

  • Online ISBN: 978-3-540-47181-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics