CS PAPERS DEEP-READ · PAPER 42

On Computable Numbers (The Turing Machine)

Alan Turing · King's College, Cambridge · 1936 (Proc. London Math. Soc., 1937)

中文 →

What did this paper do?

Every day you open your phone, and the same chip becomes a camera, then a map, then a chat box — one machine that turns into any machine when you load a different "instruction sheet." Engineers didn't think of that first. A 24-year-old mathematician, Alan Turing, worked it out in 1936 in a pure-math paper. Setting out to answer an abstract question, he pinned down exactly what "to compute" means — and sketched the blueprint for every computer that would ever exist.

First, an odd question

The towering mathematician David Hilbert had posed an ambitious challenge: is there some rote procedure that takes any mathematical statement, and mechanically grinds out "true" or "false"? If so, mathematicians could retire. But to answer "is there such a procedure?", you first hit a deeper snag: what does "a rote procedure" even mean? Before Turing, "rote," "mechanical," "by the book" were pure intuition — nobody had made them precise.

Turing's idea: watch a person do arithmetic

Turing didn't strain for a grand definition. He watched how a real person computes with pencil and paper, then stripped it to the bone: an endless tape of squares holding symbols; a pencil tip that looks at one square at a time; a handful of states of mind ("carrying a digit"); and a rigid lookup table — "in this state, seeing this symbol: rewrite the square, move the tip one step, switch state." Do that over and over, and that's "computing." This imagined device is the Turing machine. It's almost laughably simple, yet it can compute exactly as much as today's mightiest supercomputer.

A machine that can become any machine

Here comes the staggering step. Since every Turing machine's lookup table is just a string of symbols, write that table onto the tape too, and read it as data. Turing built one special machine: put "the instruction sheet of some machine M" on its tape, let it read, and it will impersonate M and do everything M does. He called it the universal machine. This is the birth of "software" — a program is no longer hard-wired circuitry, but a piece of data you can read and swap out. The computer in your hand is, at heart, this universal machine.

Some things a machine can never work out

Then Turing drew a hard boundary around this all-powerful device. He asked: could there be a machine that glances at another's instruction sheet and decides whether it will run forever or eventually jam? He proved no — by making a machine sit in judgment over itself, like the sentence "this sentence is false" that spins out the moment it turns on itself. So back to Hilbert's grand question: that universal deciding procedure simply does not exist. Mathematics always holds corners no machine can reach — not because machines are too slow, but because logic forbids it. That boundary has never been crossed.

Remember one thing

To answer "is there a universal procedure that decides everything," Turing first defined "computing" as a minimal tape machine, then invented the universal machine that "reads an instruction sheet and becomes any machine" (the blueprint of every computer), then proved that some questions no machine can ever decide — so the universal procedure doesn't exist. One pure-math paper laid both the foundation of computers and their ceiling.

Want the machine diagram, the universal machine, and how the diagonal argument corners a machine into contradicting itself? → switch to the deep read