Comparison & Why ALGOL Matters

41.1 ALGOL 60 vs ALGOL 68 vs Pascal vs C

1972 (ANSI 1989) two-level grammar + prose EBNF + prose (ISO 7185) prose + grammar (ISO 9899) stropped (bold words) begin... end BEGIN... END or (...) integer, real, Boolean modes: INT, REAL, BOOL, CHAR, STRING, BITS, COMPL, STRUCT, UNION, REF, PROC, rows integer, real, boolean, char, enums, subranges, arrays, records, sets, pointers, files int, char, float, double, arrays, struct, union, pointers typedef, struct STRING (flexible) packed arrays of char char arrays, NUL-terminated value (refs for in-out), procedures value (pointers for in-out) yes (block entry) yes, plus FLEX no (conformant arrays in ISO level 1) VLAs (C99), malloc REF (safe, scope-checked) T * (unchecked) HEAP, garbage collected tagged, safe (conformity clause) variant records (unchecked) user-defined, overloaded, PRIO if... then... else IF... FI, ( | |) for (step/until/while/list) FOR FROM BY TO WHILE DO OD for, while, repeat for, while, do CASE... IN... OUT... ESAC none (implementation) transput library, formats stdio library library (threads, C11) none (extensions) none (extensions; units) files + headers

41.2 Why ALGOL matters today

It shaped how we define languages — BNF, formal semantics and grammar-driven compilers.

It shaped how we write programs — blocks, scopes, recursion, structured control flow, expression-oriented design.

It shaped how we implement languages — activation records, static links, displays, thunks, stack machines, garbage collection.

It is a lesson in language design — ALGOL 60 shows the power of a small, clean core; ALGOL 68 shows both the power and the cost of radical generality, and the Minority Report remains a cautionary tale about specification readability.

It still runs — on Unisys MCP systems in production, and on a68g and MARST on your laptop.