ALGOL
ALGOL (ALGOrithmic Language) is a family of imperative programming languages first developed in the late 1950s that introduced block structure, lexical scoping, and formalized syntax description, profoundly influencing nearly all…
Definition
ALGOL (ALGOrithmic Language) is a family of imperative programming languages first developed in the late 1950s that introduced block structure, lexical scoping, and formalized syntax description, profoundly influencing nearly all subsequent procedural programming languages.
Overview
ALGOL originated from an international effort in the late 1950s to design a language for expressing algorithms in scientific and mathematical computing that would be both machine-independent and readable enough to serve as a publication format for algorithms in academic journals. ALGOL 58 was an initial draft, but the landmark version, ALGOL 60, published in 1960 by a committee including John Backus and Peter Naur among others, introduced ideas that were radically new for the time and that remain foundational to programming language design today: block structure (nested scopes delimited by begin/end), lexical (static) scoping of variables, recursive procedure calls, and rigorous formal syntax specified using what became known as Backus-Naur Form (BNF) — itself named for two of ALGOL's designers and still the standard notation for describing programming language grammars. ALGOL 60's report was notable for separating a 'publication language' (used to describe algorithms in print, including subscripts and Greek-letter-friendly notation) from a 'reference language' and 'hardware representations,' reflecting its dual role as both an implementable language and a formal notation for the computer science literature; algorithms published in ACM's Communications journal for years afterward were routinely written in ALGOL 60. Despite this influence, ALGOL 60 itself was never a major commercial success — it lacked standardized input/output facilities, which fragmented implementations, and it faced competition from Fortran (entrenched in numerical computing) and COBOL (in business computing). ALGOL's true legacy lies in its descendants and the languages it directly shaped: Pascal, Simula, and Modula-2 (all by or influenced by Niklaus Wirth's ALGOL-inspired work), C (whose block structure and syntax owe a clear debt to ALGOL), and by extension C++, Java, and the entire C-family lineage. A later, more ambitious revision, ALGOL 68, introduced further advanced features but was considered too complex for widespread adoption. The phrase 'ALGOL-like languages' is still used by language researchers to describe the broad family of block-structured, lexically scoped imperative languages that trace their conceptual lineage back to the 1960 report.
Key Features
- Introduced block structure — nested lexical scopes delimited by begin/end
- Pioneered lexical (static) scoping of variables, a near-universal feature in modern languages
- Supported recursive procedure calls, unusual for a language of its era
- Formal grammar specified using Backus-Naur Form (BNF), still the standard notation today
- Distinguished a 'publication language' for print from implementable 'reference' and 'hardware' representations
- Served as the standard language for publishing algorithms in Communications of the ACM
- Directly shaped Pascal, Simula, Modula-2, C, and the broader ALGOL-like language family