ALGOL 68
A powerful imperative programming language designed as a successor to ALGOL 60 with rigorous syntax and innovative features
Created by IFIP Working Group 2.1
Overview
ALGOL 68 (short for Algorithmic Language 1968) is an imperative programming language that was designed as a successor to ALGOL 60. Developed by the International Federation for Information Processing (IFIP) Working Group 2.1, ALGOL 68 was conceived with the goal of creating a language with much wider scope of application and more rigorously defined syntax and semantics than its predecessor.
Historical Significance
The design of ALGOL 68 took five years (1964-1968) and involved some of the greatest names in computer science. The language was formally adopted on December 20, 1968, and the official Report was released in January 1969. The project was notably challenging—it burned out many brilliant computer scientists and became deadlocked over issues both in the language definition and within the working group itself.
Despite these challenges, ALGOL 68’s contributions to computer science have been deep, wide-ranging, and enduring. The language introduced many innovative features that influenced numerous programming languages that followed.
Key Features
- Orthogonal Design: ALGOL 68 features a highly orthogonal design where language constructs can be combined in consistent ways
- Strong Type System: Rigorous static typing with structural type equivalence
- User-Defined Operators: Programmers can define their own operators with custom precedence
- Flexible Arrays: Advanced array handling with flexible bounds and slicing
- Parallel Processing: Built-in constructs for parallel and concurrent programming (PAR and SEMA)
- Two-Level Grammar: Defined using Van Wijngaarden’s innovative two-level formal grammar
- Mode System: Sophisticated type system called “modes” with automatic dereferencing and coercion
Language Influence
ALGOL 68 had a profound impact on programming language development:
- Steve Bourne, who served on the ALGOL 68 revision committee, incorporated ideas from ALGOL 68 into the Bourne shell (and thereby into all descendant Unix shells like Bash) and into C (and thereby into C++ and other C-family languages)
- Many languages of the 1970s trace their design specifically to ALGOL 68, adopting some features while abandoning others considered too complex
- Most modern languages trace at least some syntax to either C or Pascal, and thus directly or indirectly to ALGOL 68
- Bjarne Stroustrup referenced ALGOL 68 numerous times when describing the development of C++
Modern Status
While ALGOL 68 is not widely used in production today, it remains significant for several reasons:
- Historical Importance: Understanding ALGOL 68 provides insight into the evolution of modern programming languages
- Educational Value: The language’s rigorous design and innovative features make it valuable for teaching programming language concepts
- Active Implementation: Algol 68 Genie (a68g), maintained by Marcel van der Veer, is a modern, complete implementation that runs on current systems
- Continued Development: In 2025, the GCC Steering Committee approved an ALGOL 68 front-end for GCC, demonstrating ongoing interest
Why Learn ALGOL 68?
Learning ALGOL 68 today offers several benefits:
- Language Design Appreciation: Understand how many modern language features were first conceived
- Historical Computing: Run and study programs from the golden age of programming language research
- Conceptual Understanding: Gain insights into orthogonal design, type systems, and formal language specification
- Influence Tracing: See firsthand how ALGOL 68 concepts appear in C, C++, and shell scripting
ALGOL 68 represents a fascinating chapter in programming language history—a bold, ambitious attempt to create a universal algorithmic language that, while not achieving mainstream adoption, profoundly shaped the languages we use today.
Timeline
Notable Uses & Legacy
Academic Research
Used extensively in computer science education and programming language research during the 1970s and 1980s
Unix Shell Development
Steve Bourne took ideas from ALGOL 68 to the Bourne shell (sh), influencing all modern Unix shells including Bash
C Language Design
ALGOL 68's influence on C is well-documented, with many concepts carried forward into C and its descendants
C++ Development
Bjarne Stroustrup referenced ALGOL 68 many times when describing the development of C++
Programming Language Theory
Introduced innovative concepts like user-defined operators, flexible arrays, and parallel processing primitives
Modern Implementations
Algol 68 Genie maintains a complete, modern implementation used for education and historical computing
Language Influence
Influenced By
Influenced
Running Today
Run examples using the official Docker image:
docker pull codearchaeology/algol68:latestExample usage:
docker run --rm -v $(pwd):/app -w /app codearchaeology/algol68:latest hello.a68