← the guideThe Wired Age

§ 02 — Eras · 1952

A-0

programs as lists of calls into a library of routines

Left: era context, features, and the 101 hello. Right: 2 deeper 201 lessons, the factorial specimen, and where A-0 lives today — each column scrolls on its own.

creators
Grace Hopper, 1952 (UNIVAC I)
status
museum piece · ancestor of every build system

The problem it solves

Programmers kept rewriting the same routines by hand. Hopper’s A-0 made a program a list of calls into a library of reusable parts.

The problem it carries

Barely a language — closer to a linking scheme — and the establishment didn’t believe it counted as programming at all.

Key features

the subroutine library
Every operation is a call into a library of hand-written routines; the program becomes a table of calls.
symbolic addressing
Names resolve to locations automatically, so code can be moved and reused without relabeling.
debugging by translation
Hopper compared the program against its machine trace — the origin of finding bugs by instrumenting the program.

101First contact — hello world. 201 — 2 lessons on mechanisms you meet after the factorial specimen: the sharp edges practitioners actually use.

201 — going deeper

The 201 assumes you have read the 101 and the specimen. Each lesson is one mechanism — what it is for, how it looks in code, and the trap or payoff that makes A-0 distinctive at scale.

  1. subroutines with parameters
  2. from A-0 to FLOW-MATIC

subroutines with parameters

Routines took arguments from tape and returned results the same way — the ancestor of every calling convention since.

from A-0 to FLOW-MATIC

Hopper’s team replaced the numeric routine calls with English-like statements, and business computing inherited a language it still argues about.

The specimen — factorial

Hopper’s A-0 treated the machine as a library: programs became sequences of subroutine calls. “Nobody believed that,” she said — they thought computers could only do arithmetic.

the call1952
| the program is a list of calls
CALL 63 (x, y, result)

reconstructed — notation of the era, simplified

Run it today

A-0’s routine tapes are archive material. Its descendant, though, is on your machine: every build system is Hopper’s library of calls.

Where it is now

Nowhere — but its idea runs your machine daily: package managers, linkers and build systems are all Hopper’s library of calls, matured for seventy years.