What it is and the problem it solves
ALGOL is a family of imperative programming languages developed in 1958 to solve the problem of ambiguous, vendor-specific algorithm description. It provided a portable, machine-independent notation for expressing computation.
How it works
ALGOL uses begin…end blocks to delimit code. It defines nested functions with lexical scope. It specifies syntax formally using Backus–Naur form. ALGOL 60 implements both call-by-value and call-by-name parameter passing. ALGOL 68 uses van Wijngaarden grammars for its definition.
What works
ALGOL 60 became the de facto standard for publishing algorithms. Its begin…end blocks clarified control flow. Its formal definition enabled precise reasoning about programs. ALGOL 58 standardised foundational terms like ‘statement’, ‘declaration’, and ‘block’.
What does not
ALGOL 60 has no official input/output facilities. It was never widely implemented as a production language. Its call-by-name semantics proved costly and difficult to optimise. ALGOL 68’s complexity hindered adoption.
What it changes
ALGOL changed how algorithms are written, published, and taught. It established lexical scoping as the default for nested functions. It made formal grammar notation standard for language specification. It set the template for international, consensus-driven language design.
Is it worth your time
Yes—if you work on language design, formal methods, or compiler theory. Its mechanisms directly shaped modern scoping, syntax definition, and evaluation strategies. Its absence of I/O means it cannot run real programs without extensions.