Skip to content
ALB Wiki

Diff — ALGOL W

Comparing rev 1 → rev 2

{{infobox
| title = ALGOL W
| designers = Niklaus Wirth & Tony Hoare — an ALGOL X proposal
| first appeared = 1966 — implemented at Stanford on the System/360
| family = restrained evolution of ALGOL 60
| added = records + references · case statements · while · strings · call-by-result
| fate = rejected by the ALGOL committee → became the direct basis of Pascal
}}
# ALGOL W
**ALGOL W** is the answer to one of computing history's great "what ifs" — the successor to ALGOL 60 that the committee rejected for being too modest. When the IFIP working group solicited proposals for the next ALGOL, **Niklaus Wirth and Tony Hoare** submitted a disciplined evolution: keep ALGOL 60's frame, add what was missing — **records and references**, **case statements** replacing the awkward `switch`, a proper `while`, strings and bit strings, complex numbers, call-by-result parameters — and stop there. At a famously contentious meeting, the committee judged it too little an advance and chose **Adriaan van Wijngaarden's** vastly more ambitious proposal instead — the design that would consume itself for years and emerge as **ALGOL 68**.[[cite: [ALGOL W](https://en.wikipedia.org/wiki/ALGOL_W) — the Wirth/Hoare proposal, the additions, and the committee's choice of the van Wijngaarden design]]
Wirth published the rejected design anyway — *A contribution to the development of ALGOL* — and, at Stanford, supervised a first-class implementation for the IBM System/360, written in **PL360**, his own ALGOL-flavored systems assembly language. The compiler was widely distributed and notably well-instrumented: it carried debugging and execution-profiling facilities that influenced how later compilers were built.[[cite: [ALGOL W](https://en.wikipedia.org/wiki/ALGOL_W) — the PL360/Stanford implementation and its debugging/profiling facilities]]
# The dialect that became a dynasty
-
The vindication was total, if slow. ALGOL W's syntax reads today like **Pascal** — because it essentially *is* Pascal's working draft: Wirth refined W into Pascal (1970), tightening record handling and, controversially, losing ALGOL W's ability to size arrays at runtime — the most-complained-about omission in early Pascal. Through Pascal came the whole Wirthian line — Modula-2, Oberon — which educated a generation of programmers and built a generation of systems. The committee's "too conservative" loser became the ancestor of the most influential teaching language ever designed; the winner became a cautionary tale about design by ambition. Hoare, who lived both sides, later used his Turing Award lecture to argue the committee had chosen wrongly.[[cite: [ALGOL W](https://en.wikipedia.org/wiki/ALGOL_W) — ALGOL W as Pascal's basis, the array-length loss, and the Modula/Oberon descent]]
+
The vindication was total, if slow. ALGOL W's syntax reads today like **Pascal** — because it essentially *is* Pascal's working draft: Wirth refined W into Pascal (1970), tightening record handling and, controversially, losing ALGOL W's ability to size arrays at runtime — the most-complained-about omission in early Pascal. Through Pascal came the whole Wirthian line — Modula-2, Oberon — which educated a generation of programmers and built a generation of systems. The committee's "too conservative" loser became the ancestor of the most influential teaching language ever designed; the winner became a cautionary tale about design by ambition. Hoare, who lived both sides, made the episode the centerpiece of his Turing Award lecture, *The Emperor's Old Clothes* — his cautionary tale about over-ambitious language design.[[cite: [ALGOL W](https://en.wikipedia.org/wiki/ALGOL_W) — ALGOL W as Pascal's basis, the array-length loss, and the Modula/Oberon descent]]
```fact
ALGOL W's formal description was written in an *affix grammar* — a precursor of the two-level Van Wijngaarden grammars that made ALGOL 68's definition famous and nearly unimplementable. The rejected proposal even predicted the winner's notation problem.
```
# Where it sits
ALGOL W is the small-is-powerful argument written as a language war: the disciplined upgrade versus the committee's grand design. ALGOL 68 produced magnificent theory and few shipping systems; ALGOL W produced Pascal. Between [[CPL]] (too big to build) and ALGOL 68 (too big to ship), it marks the third proof in this catalogue that restraint compounds.
## Check your understanding
- [ ] Who proposed ALGOL W, and what was it a candidate for?
- [ ] What three headline features did it add to ALGOL 60?
- [ ] What did the committee choose instead — and what did that become?
- [ ] What language descended directly from ALGOL W?
```hide Show answers
1 — **Wirth and Hoare**, as a proposal for the next ALGOL (**ALGOL X**).
2 — **records/references, `case` (replacing `switch`), `while`** — plus strings, bit strings, complex numbers, and call-by-result.
3 — **van Wijngaarden's** more ambitious proposal → **ALGOL 68**.
4 — **Pascal** (1970) — and through it Modula-2 and Oberon.
```
[[Category:Languages]]
[[Category:Programming]]
[[Category:History]]