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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
K.R. Apt. Ten years of hoare's logic, a survey, part I. ACM Transactions on Programming Languages and Systems, 3, 1981.
R. J. R. Back. Correctness preserving program refinements: Proof theory and applications. Technical Report Tract 131, CWI, 1980.
A. Bijlsma. Calculating with procedure calls. Information Processing Letters, 46:211–217, 1993.
Edsger W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.
Paul Gardiner and Carroll Morgan. Data refinement of predicate transformers. Theoretical Computer Science, 87:143–162, 1991.
C.A.R. Hoare, J. He, and A. Sampaio. Normal form approach to compiler design. to appear in Acta Informatica, 1993.
C.A.R. Hoare and Jifeng He. Data refinement in a categorical setting. Technical Monograph PRG-PRG-90, November 1990.
Anne Kaldewaij. Programming: the Derivation of Algorithms. Prentice-Hall, 1990.
Clare E. Martin. Preordered categories and predicate transformers. Dissertation, Oxford University, 1991.
Carroll Morgan. Procedures, parameters, and abstraction: Separate concerns. Science of Computer Programming, 11(1), 1988.
Carroll Morgan. Programming from Specifications. Prentice Hall, 1990.
David A. Naumann. Predicate transformers and higher order programs. Submitted to Theoretical Computer Science, 1992.
David A. Naumann. Two-categories and program structure: Data types, refinement calculi, and predicate transformers. Dissertation, University of Texas at Austin, 1992.
David A. Naumann. Data refinement, call by value, and higher types. Submitted to Science of Computer Programming, 1993.
P. W. O'Hearn and R. D. Tennant. Relational parametricity and local variables (preliminary report). In Proceedings, Twentieth POPL, pages 171–184, 1993.
Martin Reiser and Niklaus Wirth. Programming in Oberon. Addison-Wesley, 1992.
John C. Reynolds. The Craft of Programming. Prentice-Hall, 1981.
John C. Reynolds. The essence of Algol. In J. W. de Bakker and J. C. van Vliet, editors, Algorithmic Languages. North-Holland, 1981.
R. D. Tennant. Semantical analysis of specification logic. Information and Computation, 85, 1990.
R.D. Tennant. Semantics of Programming Languages. Prentice Hall, 1991.
Stephen Weeks and Matthias Felleisen. On the orthogonality of assignments and procedures in Algol. In Proceedings, Twentieth POPL, 1993.
N. Wirth. The programming language Oberon. Software — Practice and Experience, 18(7), 1988.
Author information
Authors and Affiliations
Editor information
Rights 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