Penguin
Annotated edit history of Algol version 7, including all changes. View license author blame.
Rev Author # Line
5 AristotlePagaltzis 1 !!! [Algol] 60
1 GlynWebster 2
7 AristotlePagaltzis 3 The principal contemporary statically typed ProgrammingLanguage. It is very similar to [Pascal], its successor, and its machine model remains the foundation for all the popular statically typed languages. [C], [C++], [Java], [CSharp] and others are variations of various extents on the machine model of [Algol]. Their programming paradigm is fundamentally identical. (ObjectOrientation is ''not'' a programming paradigm; it's a modelling paradigm.) [Algol] is also the language that introduced static scoping, and the first one to have a context-free grammar; BackusNaurForm was invented to describe it.
1 GlynWebster 4
7 AristotlePagaltzis 5 [Algol], as its name implies, was meant for expressing mathematical algorithms. It never really took off because the much uglier [Fortran] already occupied that role and had [IBM]'s corporate backing.
6
7 It was also extended for systems programming in the '60s, notably by Burroughs Corporation, which merged with Sperry Corporation in 1986 to form the Unisys Corporation. To this day, Unisys build MainFrame~s that run the MCP OperatingSystem where [Algol] 60 derivatives such as NEWP, Algol, DCAlgol and DMAlgol are the main vehicle of systems and application programming. In the rest of the world, though, the rise of [Unix] hoisted [C] into that role.
8
9 Thus, it lives on mainly through its heritage: the machine model and the impact of structured programming enabled by lexical scoping.
4 DougMerritt 10
5 AristotlePagaltzis 11 !!! [Algol] 68
1 GlynWebster 12
5 AristotlePagaltzis 13 A general purpose successor to [Algol] 60 designed by a committee over many years -- too many years. History passed it by and the end result was considered too complex to implement efficiently on computers of the day, although the few programmers who did get to use it love it.
1 GlynWebster 14
7 AristotlePagaltzis 15 Introduced augmented assignment (<tt>+=</tt>, <tt>-=</tt>, <tt>*=</tt>, <tt>/=</tt> etc).
4 DougMerritt 16
5 AristotlePagaltzis 17 !!! [Algol] W (1965)
1 GlynWebster 18
5 AristotlePagaltzis 19 By CharlesAntonyRichardHoare and NicolasWirth (the "W" in "[Algol] W"). Not very widely used, but influential on later languages in its features; [Pascal] often gets credit for invention of a number of things that actually appeared first in [Algol]-W or other languages.
1 GlynWebster 20
5 AristotlePagaltzis 21 Introduced case/switch statement invented by CharlesAntonyRichardHoare (he says his proudest invention), which is characterized by a sequence of non-ordered non-overlapping values/ranges (as opposed to the primitive [Algol]-60 goto-switch or [Lisp]'s cond). Introduced passing parameters by value-result (a.k.a. in-out parameters).
1 GlynWebster 22
5 AristotlePagaltzis 23 ----
4 DougMerritt 24
5 AristotlePagaltzis 25 See also:
1 GlynWebster 26
5 AristotlePagaltzis 27 * [Algol] 60 on Linux: The [GNU] Project's [MARST | http://www.gnu.org/software/marst/], an [Algol] to [C] translator.
28 * [Algol] 68 on Linux: J. M. van der Veer's [Algol 68 G interpreter | http://www.xs4all.nl/~jmvdveer/algol.html].
29 * [AlgolWCompiler]
30 * GlynWebster's [Algol68 skillz | http://www.wave.co.nz/~glyn/befunge.a68]
1 GlynWebster 31
32 ----
5 AristotlePagaltzis 33 Part of CategoryProgrammingLanguages, CategoryImperativeProgrammingLanguages