Penguin

Algol 60

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.

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.

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 MainFrames 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.

Thus, it lives on mainly through its heritage: the machine model and the impact of structured programming enabled by lexical scoping.

Algol 68

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.

Introduced augmented assignment (+=, -=, *=, /= etc).

Algol W (1965)

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.

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).


See also:


Part of CategoryProgrammingLanguages, CategoryImperativeProgrammingLanguages