CPL
CPL
CPL is the most influential programming language that almost nobody ever ran. Designed jointly by Cambridge's Mathematical Laboratory and the University of London Computer Unit — its name migrating from "Cambridge Programming Language" to "Combined" as the collaboration formalized (and jokingly re-expanded as "Cambridge Plus London" and "Christopher's Programming Language," after Christopher Strachey) — it was published in August 1963 in a Computer Journal paper whose five authors read like the era's dean's list: Strachey, Barron, Buxton, Hartley, and Nixon.[1]
Where ALGOL 60 had been small and elegant, CPL was deliberately big: a language meant to cover scientific calculation, industrial process control, business data processing — even, the paper admitted, command-line games — with both low-level access and high abstraction in one system. It was the most ambitious language design of its decade. It was also, on the evidence, too ambitious to build: implementations on Cambridge's Titan and London's Atlas proceeded slowly, the first CPL compiler probably wasn't written until around 1970, and the language faded during the seventies without ever gaining a user community to speak of.[2]
The failure that parented C
CPL's real history happened to its child. In 1967 Martin Richards wrote BCPL — "Basic CPL" (originally "Bootstrap CPL") — a stripped-down, portable systems language distilled from CPL's ideas while CPL itself still barely existed in running form. BCPL was implemented before the first full CPL compiler; it became the bootstrap language of choice on half the machines in the world; and it led, through Ken Thompson's B on the PDP-7, to C. The lineage is exact: CPL → BCPL → B → C — meaning the largest failed language of the 1960s is the direct ancestor of the most successful one ever written.[3]
Where it sits
CPL is the lesson ALGOL 68 would re-learn expensively: a language can be intellectually magnificent and still lose to something smaller that actually compiles. It exists now mostly as ancestry — but what ancestry. Autocode's British school produced it; B's lineage descends from it; and every C program ever written is, three removes down, a CPL program that finally shipped.
Check your understanding
- What did CPL originally stand for — and what did the "Combined" version combine?
- Why is CPL called a failure despite its pedigree?
- What language did Martin Richards distill from it, and when?
- Trace the full lineage from CPL to C.
Show answers
1 — originally Cambridge Programming Language; "Combined" marked the joint Cambridge + University of London development (also jokingly "Cambridge Plus London" / "Christopher's Programming Language"). 2 — it was too large to implement — no full compiler until ~1970, no real user community, extinct by the late seventies. 3 — BCPL ("Basic CPL"), 1967 — implemented before CPL itself was. 4 — CPL → BCPL → B → C — Richards → Thompson → Ritchie.
Footnotes
- ↑ Barron, Buxton, Hartley, Nixon & Strachey, "The Main Features of CPL)", The Computer Journal 6(2), August 1963 — the founding paper and the naming history
- ↑ CPL) — the design scope, the Titan/Atlas implementations, and the ~1970 first compiler
- ↑ CPL) — BCPL's 1967 implementation predating CPL's own, and the chain to C via B