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 published in February 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)
- Dennis Ritchie acknowledged a “considerable debt” to ALGOL 68 for C’s type composition scheme, casts, and assignment operators
- 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 November 2025, the GCC Steering Committee approved an experimental ALGOL 68 front-end for GCC 16, 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
Dennis Ritchie acknowledged ALGOL 68's influence on C's type composition scheme, casts, and assignment operators
C++ Development
Bjarne Stroustrup cited ALGOL 68 as an influence on C++'s operator overloading, references, and variable declaration placement
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.a68Topics Covered
Hello World in ALGOL 68
Your first ALGOL 68 program - the classic Hello World example with Docker setup and historical context
Variables and Types in ALGOL 68
Learn about ALGOL 68's powerful mode system — its unique approach to variables, types, and type composition with practical Docker-ready examples