01Overview

In 1958 computer scientists from Europe and the US formed a committee to design a universal algorithmic language. ALGOL 58 set out the concepts, and ALGOL 60 delivered a full report: block structure, recursion, lexical scope, pass-by-value and BNF syntax. It was no commercial success, yet every later language was designed against it.

The ALGOL 60 report ran to a dozen pages and was extremely precise. It gave rise to structured programming, compiler theory — parsing above all — and formal semantics. Pascal, C and Ada all inherit its syntactic tradition. And in 1968 Dijkstra’s “goto considered harmful” pushed structured control flow into the mainstream.

02History

  1. 1958

    ALGOL 58

    An international committee starts the design.

  2. 1960

    The ALGOL 60 report

    BNF, block structure and lexical scope.

  3. 1968

    Dijkstra on goto

    A manifesto for structured programming.

  4. 1970

    Pascal

    The model teaching language.

03Core concepts

Block structure

Scope and lifetime delimited by begin/end.

Lexical scope

A variable’s visibility follows the nesting of the source text.

BNF

A formal notation describing syntax with productions.

04Hands-on

Do it once — it beats reading it ten times

Write the ALGOL 60 report grammar for a tiny subset in BNF and generate a parser from it

05Self-check

Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.

Can you explain "Block structure"?

Scope and lifetime delimited by begin/end.

Can you explain "Lexical scope"?

A variable’s visibility follows the nesting of the source text.

Can you explain "BNF"?

A formal notation describing syntax with productions.

What problem did it solve, and why was there nothing better at the time?

Go back to the history section: how was this done before, and what did it cost?

If you had to build it today, how would you break it down?

Use the hands-on task above: write a plan of at most three steps before you start.

06Key people

P

Peter Naur

1926 – 2016

The ALGOL 60 report and compiler theory.

E

Edsger Dijkstra

1930 – 2002

Structured programming and shortest paths.

07Further reading

  • Revised Report on the Algorithmic Language ALGOL 60Naur et al. · 1960
  • Notes on Structured ProgrammingEdsger Dijkstra · 1968