Skip to main content

On the essence of Oberon

  • Session Papers
  • Conference paper
  • First Online:
Programming Languages and System Architectures

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

Abstract

Reynolds described the “essence of Algol” as the simple imperative language combined with the typed lambda calculus. We provide a similar description of Wirth's language Oberon as the simple imperative language combined with procedure types and record extension. Whereas the semantics of Algol has been given in terms of a (domain theoretic) model using an explicit representation of storage, our semantics uses predicate transformers; this is possible thanks to recent advances in the theory of predicate transformers. Predicate transformer semantics connects one of the most successful methods of rigorous program development with one of the most successful pragmatically-designed 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. K.R. Apt. Ten years of hoare's logic, a survey, part I. ACM Transactions on Programming Languages and Systems, 3, 1981.

    Google Scholar 

  2. R. J. R. Back. Correctness preserving program refinements: Proof theory and applications. Technical Report Tract 131, CWI, 1980.

    Google Scholar 

  3. A. Bijlsma. Calculating with procedure calls. Information Processing Letters, 46:211–217, 1993.

    Google Scholar 

  4. Edsger W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.

    Google Scholar 

  5. Paul Gardiner and Carroll Morgan. Data refinement of predicate transformers. Theoretical Computer Science, 87:143–162, 1991.

    Google Scholar 

  6. C.A.R. Hoare, J. He, and A. Sampaio. Normal form approach to compiler design. to appear in Acta Informatica, 1993.

    Google Scholar 

  7. C.A.R. Hoare and Jifeng He. Data refinement in a categorical setting. Technical Monograph PRG-PRG-90, November 1990.

    Google Scholar 

  8. Anne Kaldewaij. Programming: the Derivation of Algorithms. Prentice-Hall, 1990.

    Google Scholar 

  9. Clare E. Martin. Preordered categories and predicate transformers. Dissertation, Oxford University, 1991.

    Google Scholar 

  10. Carroll Morgan. Procedures, parameters, and abstraction: Separate concerns. Science of Computer Programming, 11(1), 1988.

    Google Scholar 

  11. Carroll Morgan. Programming from Specifications. Prentice Hall, 1990.

    Google Scholar 

  12. David A. Naumann. Predicate transformers and higher order programs. Submitted to Theoretical Computer Science, 1992.

    Google Scholar 

  13. David A. Naumann. Two-categories and program structure: Data types, refinement calculi, and predicate transformers. Dissertation, University of Texas at Austin, 1992.

    Google Scholar 

  14. David A. Naumann. Data refinement, call by value, and higher types. Submitted to Science of Computer Programming, 1993.

    Google Scholar 

  15. P. W. O'Hearn and R. D. Tennant. Relational parametricity and local variables (preliminary report). In Proceedings, Twentieth POPL, pages 171–184, 1993.

    Google Scholar 

  16. Martin Reiser and Niklaus Wirth. Programming in Oberon. Addison-Wesley, 1992.

    Google Scholar 

  17. John C. Reynolds. The Craft of Programming. Prentice-Hall, 1981.

    Google Scholar 

  18. John C. Reynolds. The essence of Algol. In J. W. de Bakker and J. C. van Vliet, editors, Algorithmic Languages. North-Holland, 1981.

    Google Scholar 

  19. R. D. Tennant. Semantical analysis of specification logic. Information and Computation, 85, 1990.

    Google Scholar 

  20. R.D. Tennant. Semantics of Programming Languages. Prentice Hall, 1991.

    Google Scholar 

  21. Stephen Weeks and Matthias Felleisen. On the orthogonality of assignments and procedures in Algol. In Proceedings, Twentieth POPL, 1993.

    Google Scholar 

  22. N. Wirth. The programming language Oberon. Software — Practice and Experience, 18(7), 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jürg Gutknecht

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Naumann, D.A. (1994). On the essence of Oberon. In: Gutknecht, J. (eds) Programming Languages and System Architectures. Lecture Notes in Computer Science, vol 782. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57840-4_39

Download citation

  • DOI: https://doi.org/10.1007/3-540-57840-4_39

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57840-6

  • Online ISBN: 978-3-540-48356-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics