ALGOL 58
ALGOL 58
ALGOL 58 is the rough draft of the most influential language family ever written. At a joint meeting at ETH Zürich, 27 May – 2 June 1958, eight delegates — four from America's ACM (Backus, Katz, Perlis, Wegstein) and four from Germany's GAMM (Bauer, Bottenbruch, Rutishauser, Samelson) — merged two independent proposals for a universal language into a single report. Backus's stated motives describe the project exactly: to give people "a means of communicating numerical methods and other procedures between people, and a means of realizing a stated process on a variety of machines." Notation first, machine second.[1]
It was originally named IAL — "International Algebraic Language" — until Alan Perlis objected that the acronym was "unspeakable" and pompous. ALGOL (coined by Bottenbruch in 1957 as algorithmische Sprache) won instead, though the published report still carried IAL.[2]
What it actually was — honestly
ALGOL 58's real contribution is narrower than its reputation: it introduced the compound statement — begin/end grouping — but restricted to control flow only; the coupling of blocks to identifier scope — the true innovation we call block structure — was ALGOL 60's addition. What ALGOL 58 proved was the premise: that an algorithm could be written in a machine-independent notation and that the same notation could serve both for human communication and for compiling.[3]
The implementations came fast and forked immediately: the ZMMD group had a working ALGOL 58 compiler on the Z22 by the end of 1958; Dartmouth ran a variant on an LGP-30 that quickly grew into ALGOL 60; IBM's internal effort died competing with its own FORTRAN; and Burroughs' BALGOL (for the 220) kept ALGOL 58's original character longest. Most importantly, its grammar fed the military branch — JOVIAL was built directly on it, as were MAD, NELIAC, and ALGO — and from 1959 the Communications of the ACM published algorithms in ALGOL notation, making it literature's programming language for two decades.[4]
Where it sits
ALGOL 58 is the prototype that proved the point — quickly superseded (ALGOL 60 arrived 1960), but the direct parent of JOVIAL and the grandparent of block structure, structured control flow, and every begin/end (or {/}) written since. It's the draft that became a genre.
Check your understanding
- What was ALGOL 58 originally called, and who vetoed the name?
- What two goals did Backus give for the language?
- What did ALGOL 58 introduce — and what did it not yet do that ALGOL 60 added?
- Name two direct descendants of ALGOL 58.
Show answers
1 — IAL (International Algebraic Language) — vetoed by Perlis as an "'unspeakable' and pompous acronym." 2 — to communicate procedures between people and to realize a stated process on a variety of machines — publication and compilation. 3 — the compound statement (begin/end) for control flow — but not blocks tied to identifier scope; that was ALGOL 60. 4 — JOVIAL and BALGOL (also MAD, NELIAC, ALGO).
Footnotes
- ↑ ALGOL 58 and the masswerk ALGOL archive — the Zürich meeting, the attendee list, and the Backus motives quote
- ↑ ALGOL 58 naming — Perlis's rejection of IAL and Bottenbruch's coinage
- ↑ ALGOL 58 — the compound-statement-only block limitation versus ALGOL 60's scoped blocks
- ↑ ALGOL 58 implementations — the Z22/ZMMD compiler, the Dartmouth LGP-30, BALGOL, and the JOVIAL/MAD/NELIAC descent