Est. 1968 Advanced

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

Paradigm Imperative, Procedural, Structured
Typing Static, Strong, Structural
First Appeared 1968
Latest Version Algol 68 Genie 3.5.x (2024)

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:

  1. Historical Importance: Understanding ALGOL 68 provides insight into the evolution of modern programming languages
  2. Educational Value: The language’s rigorous design and innovative features make it valuable for teaching programming language concepts
  3. Active Implementation: Algol 68 Genie (a68g), maintained by Marcel van der Veer, is a modern, complete implementation that runs on current systems
  4. 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

1964
IFIP Working Group 2.1 begins work on ALGOL X (which became ALGOL 68)
1968
ALGOL 68 formally adopted on December 20, 1968
1969
Official Report published in January
1973
Revised Report on ALGOL 68 published
2001
Algol 68 Genie project started by Marcel van der Veer
2024
Algol 68 Genie 3.5.x continues active development
2025
GCC Steering Committee approves ALGOL 68 front-end for GCC

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

ALGOL 60

Influenced

C C++ Bourne Shell Bash Pascal Ada

Running Today

Run examples using the official Docker image:

docker pull codearchaeology/algol68:latest

Example usage:

docker run --rm -v $(pwd):/app -w /app codearchaeology/algol68:latest hello.a68

Topics Covered

Last updated: