c.curionodeThe Turing Archive

2020 · Languages & software

The machinery behind a programming language

Automata, grammars and algorithms helped make compilers teachable and dependable.

2020Turing Award

Visual guide

The prize, pictured

The machinery behind a programming language: Automata, grammars and algorithms helped make compilers teachable and dependable.
Original conceptual diagram by Curionode. Read the text version below for the full explanation.
Read the poster text
  1. Recognise

    Identify tokens in source text.

  2. Parse

    Recover grammatical structure.

  3. Translate

    Build a representation for execution.

Compiler front ends are only part of language implementation; optimisation and machine-code generation introduce further challenges.

01 · The idea

In everyday language

Alfred Aho and Jeffrey Ullman developed algorithms and theory for implementing programming languages and synthesised this knowledge in influential textbooks. Source text can be recognised as tokens, parsed into structure and transformed towards executable code. Their work gave generations of programmers a common toolkit for these stages.

Why it matters

A shared theoretical vocabulary lets compiler techniques be taught, reused and applied to new languages.

02 · The people

Who brought the idea to life?

Illustrated portrait of Alfred Aho

Alfred Aho

Alfred Aho developed algorithms and tools that made programming-language implementation more systematic. At Bell Labs, his work included pattern matching, parsing, and compiler construction, as well as participation in the Unix tool tradition. With Jeffrey Ullman and other collaborators, he organized this knowledge into influential textbooks. His later teaching at Columbia continued that connection between deep algorithmic foundations and the practical craft of building language processors.

Read the biography ↗
Illustrated portrait of Jeffrey Ullman

Jeffrey Ullman

Jeffrey Ullman helped establish the theoretical and educational foundations of compilers, algorithms, and databases. His collaboration with Alfred Aho produced influential results and textbooks that explained how formal languages become working language-processing systems. At Stanford, he also developed important ideas in database theory and educated generations of researchers. His role in the shared award combines original technical contributions with a remarkable ability to organize and teach a field.

Read the biography ↗

03 · Read further

From the original sources

Original explanations based on the official award record. The subject label is an editorial navigation aid.

  1. Official ACM profile: Alfred Aho ↗amturing.acm.org
  2. Heidelberg Laureate Forum: Alfred Aho ↗www.heidelberg-laureate-forum.org
  3. Official ACM profile: Jeffrey Ullman ↗amturing.acm.org
  4. Heidelberg Laureate Forum: Jeffrey Ullman ↗www.heidelberg-laureate-forum.org