Lably
Skip to content

ALGOL

Family of programming languages

  • 11 min read
  • 4 chapters
Priručnik za programski jezik Algol
Zvezdica2816 · CC BY-SA 3.0

Related on Lably

Through Algorithm, Syntax (programming languages) and COBOL

In the sense that the syntax of most modern languages is "Algol-like", it was arguably more influential than three other high-level programming languages among which it was roughly contemporary: FORTRAN, Lisp, and COBOL. It was designed to avoid some of the perceived problems with FORTRAN and eventually gave rise to many other programming languages, including PL/I, Simula, BCPL, B, Pascal, Ada, and C.

ALGOL introduced code blocks and the begin...end pairs for delimiting them. It was also the first language implementing nested function definitions with lexical scope. Moreover, it was the first programming language to give detailed attention to formal language definition and, through the Algol 60 Report, it introduced Backus–Naur form, a principal formal grammar notation for language design.

There were three major specifications, named after the years they were first published:

  • ALGOL 58 – originally proposed to be called IAL, for International Algebraic Language.
  • ALGOL 60 – first implemented as X1 ALGOL 60 in 1961. Revised 1963.
  • ALGOL 68 – introduced new elements including flexible arrays, slices, parallelism, operator identification. Revised 1973.

ALGOL 68 is substantially different from ALGOL 60 and was not well received, so reference to "Algol" is generally understood to mean ALGOL 60 and its dialects.

History

ALGOL was developed jointly by a committee of European and American computer scientists in a meeting in 1958 at the Swiss Federal Institute of Technology in Zurich (cf. ALGOL 58). It specified three different syntaxes: a reference syntax, a publication syntax, and an implementation syntax, syntaxes that permitted it to use different keyword names and conventions for decimal points (commas vs periods) for different languages.

ALGOL was used mostly by research computer scientists in the United States and in Europe; commercial applications were hindered by the absence of standard input/output facilities in its description, and the lack of interest in the language by large computer vendors (other than Burroughs Corporation). ALGOL 60 did however become the standard for the publication of algorithms and had a profound effect on future language development.

John Backus developed the Backus normal form method of describing programming languages specifically for ALGOL 58. It was revised and expanded by Peter Naur for ALGOL 60, and at Donald Knuth's suggestion renamed Backus–Naur form.

Peter Naur: "As editor of the ALGOL Bulletin I was drawn into the international discussions of the language and was selected to be member of the European language design group in November 1959. In this capacity I was the editor of the ALGOL 60 report, produced as the result of the ALGOL 60 meeting in Paris in January 1960."

The following people attended the meeting in Paris (from 11 to 16 January):

Alan Perlis gave a vivid description of the meeting: "The meetings were exhausting, interminable, and exhilarating. One became aggravated when one's good ideas were discarded along with the bad ones of others. Nevertheless, diligence persisted during the entire period. The chemistry of the 13 was excellent."

Legacy

A significant contribution of the ALGOL 58 Report was to provide standard terms for programming concepts: statement, declaration, type, label, primary, block, and others.

ALGOL 60 inspired many languages that followed it. Tony Hoare remarked: "Here is 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." The Scheme programming language, a variant of Lisp that adopted the block structure and lexical scope of ALGOL, also adopted the wording "Revised Report on the Algorithmic Language Scheme" for its standards documents in homage to ALGOL.

Beyond scheme, ALGOL's block structure and lexical scoping directly shaped the design of Pascal, C, Ada, and Simula. Simula, built as an extension of ALGOL 60, introduce classes and objects, making ALGOL an indirect ancestor of object-oriented programming. The Backus-Naur form notation, originally developed to describe ALGOL 58's grammar, became the standard method for formally specifying programming language syntax and remains widely used in language standards today.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Computing and communication