ALGOL 68 - Overview

Overview

ALGOL 68 features include expression-based syntax, user-declared types and structures/tagged-unions, a reference model of variables and reference parameters, string, array and matrix slicing, and also concurrency.

ALGOL 68 was designed by IFIP Working Group 2.1. On December 20, 1968 the language was formally adopted by Working Group 2.1 and subsequently approved for publication by the General Assembly of IFIP.

ALGOL 68 was defined using a two-level grammar formalism invented by Adriaan van Wijngaarden. Van Wijngaarden grammars use a context-free grammar to generate an infinite set of productions that will recognize a particular ALGOL 68 program; notably, they are able to express the kind of requirements that in many other programming language standards are labeled "semantics" and have to be expressed in ambiguity-prone natural language prose, and then implemented in compilers as ad hoc code attached to the formal language parser.

The main aims and principles of design of ALGOL 68:
  1. Completeness and clarity of design,
  2. Orthogonal design,
  3. Security,
  4. Efficiency:
    • Static mode checking
    • Mode-independent parsing
    • Independent compilation
    • Loop optimization
    • Representations - in minimal & larger character sets

ALGOL 68 was the first (and possibly one of the last) major language for which a full formal definition was made before it was implemented.

—C.H.A. Koster,

ALGOL 68 has been criticized, most prominently by some members of its design committee such as C. A. R. Hoare and Edsger Dijkstra, for abandoning the simplicity of ALGOL 60 becoming a vehicle for complex or overly general ideas, and doing little to make the compiler writer's task easy, in contrast to deliberately simple contemporaries (and competitors) such as C, S-algol and Pascal.

In 1970, ALGOL 68R became the first working compiler for ALGOL 68.

In the 1973 revision, certain features - such as proceduring, gommas and formal bounds - were omitted. c.f. The language of the unrevised report.

Though European defence agencies (in Britain Royal Signals and Radar Establishment - RSRE) promoted the use of ALGOL 68 for its expected security advantages, the American side of the NATO alliance decided to develop a different project, the Ada programming language, making its use obligatory for U.S. defense contracts.

Steve Bourne, who was on the Algol 68 revision committee, took some of its ideas to his Bourne shell (and thereby, to descendant shells such as Bash) and to C (and thereby to descendants such as C++).

The complete history of the project can be found in C.H. Lindsey's A History of ALGOL 68.

For a full length treatment of the language, see Programming Algol 68 Made Easy by Dr. Sian Leitch, or Learning Algol 68 Genie by Dr. Marcel van der Veer which includes the Revised Report.

Read more about this topic:  ALGOL 68