Algol-like languages
An Algol-like language is a language that is based on ALGOL 60.
There is disagreement on what the "essence" of ALGOL 60 is. However, the currently prevailing view is that Algol-like languages are characterised by the following features:
- a call-by-name semantics, with full
\beta and\eta laws - just one side-effect, namely assignment to variables in memory, but with procedures not being storable values (i.e. no higher-order store)
- block structure and local variables
- conditionals, recursion and procedures applicable to all types
This view was put forward by John Reynolds in an invited address to a symposium in tribute to Adriaan van Wijngaarden (1981). It survives in a manuscript known as "The Essence of ALGOL," which is reprinted in O'Hearn and Tennent 1997. Reynolds also introduced the Idealized Algol language in the same paper.
There are many reasons for which one might be interested in Algol-like languages. Sir Tony Hoare Hoare 1974 said that ALGOL 60 was
a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors
Otherwise, there are multiple foundational reasons to consider Algol-like languages. In the words of O'Hearn and Tennent in the preface of their 1997 volumes:
In recent years there has been a remarkable convergence of interest in programming languages based on ALGOL 60. Researchers interested in the theory of procedural and object-oriented languages discovered that ALGOL 60 shows how to add procedures and object classes to simple imperative languages in a general and clean way. And, on the other hand, researchers interested in purely functional languages discovered that ALGOL 60 shows how to add imperative mechanisms to functional languages in a way that does not compromise their desirable properties.
See also
References
- The original paper on Idealized Algol was
@inproceedings{reynolds_essence_1981,
address = {Amsterdam},
title = {The {Essence} of {ALGOL}},
booktitle = {Algorithmic {Languages}: {Proceedings} of the {International} {Symposium} on {Algorithmic} {Languages}},
publisher = {North-Holland},
author = {Reynolds, John C.},
editor = {de Bakker, J. W. and van Vliet, J. C.},
year = {1981},
pages = {345--372},
}
- The following two volume set collects an extraordinary amount of highly influential papers on Algol-like languages, starting from the Revised report and Strachey and working up all the way to game semantics of the late 1990s, and Parallel Algol:
@book{ohearn_1997,
address = {Boston, MA},
title = {Algol-like {Languages}},
volume = {1},
publisher = {Birkhäuser Boston},
editor = {O’Hearn, Peter W. and Tennent, Robert D.},
year = {1997},
doi = {10.1007/978-1-4612-4118-8}
}
@book{ohearn_1997-2,
address = {Boston, MA},
title = {Algol-like {Languages}},
volume = {2},
publisher = {Birkhäuser Boston},
editor = {O’Hearn, Peter W. and Tennent, Robert D.},
year = {1997},
doi = {10.1007/978-1-4757-3851-3}
}