First Draft of a Report on the EDVAC
Keep a computer's orders in the same memory as its numbers — the design every machine still uses.
The blueprint that let a computer change its own instructions — by keeping them in the same memory as its data.
The idea, unpacked
Early electronic machines like ENIAC were programmed by physically rewiring them — setting switches and replugging cables, which could take days for a new problem. Von Neumann's report proposed something different: write the program as numbers and store it in the machine's memory, right next to the data it works on.
That single decision is the stored-program idea. Because the instructions are just numbers sitting in memory, the machine can read them, follow them one by one, and even change them — so the same physical computer can run any program you load, with no rewiring at all. Loading new software, rather than rebuilding hardware, is how every computer has worked ever since.
Where it came from
In the spring of 1945, von Neumann was consulting on the EDVAC, the planned successor to ENIAC at the University of Pennsylvania. He gathered the team's discussions into a handwritten draft; Herman Goldstine had it typed and mailed to about two dozen people on 30 June 1945, with von Neumann's name on the front. It was only a ‘first draft,’ unfinished and without diagrams — yet it stated the logical design so clearly that it escaped the project and set the template for the entire field.
The draft also carried a sting that is still felt. The engineers J. Presper Eckert and John Mauchly, who had built ENIAC, considered the ideas a group effort and were dismayed to see a single name on the front page — a dispute over who deserves the credit that historians still argue about today.
Why it mattered
Before this, a ‘computer’ was a special-purpose machine: to tackle a new kind of problem, you rebuilt it. After it, the machine became general — you changed what it did simply by changing the numbers in its memory. That is the whole difference between a calculator and a computer, and it is why one laptop can be a typewriter, a darkroom, a cinema and a games console, depending only on which program happens to be loaded.
An analogy
Think of a player piano. The old kind reads its tune from a punched paper roll: the music and the machine are separate, and to play a new song you feed in a new roll. A von Neumann machine instead keeps the song sheet inside the very same drawer as its scratch paper, written in the same shorthand — so it can not only play the tune but rewrite it mid-performance. The instructions and the data share one drawer. Try the tiny machine below.
Where it sits
It is the engineering twin of two other ideas in this Library. Alan Turing had shown in 1936 that a single ‘universal machine’ could imitate any other by reading a description of it — von Neumann's report is how you actually build one. And Claude Shannon's 1948 work measured information in bits, the very stuff von Neumann's memory stores. Turing's theory, Shannon's bit, and von Neumann's architecture are the three pillars under every computer.
The considerations which follow deal with the structure of a very high speed automatic digital computing system, and in particular with its logical control.
The three specific parts CA, CC (together C) and M correspond to the associative neurons in the human nervous system. It remains to discuss the equivalents of the sensory or afferent and the motor or efferent neurons. These are the input and the output organs of the device.
The instructions which govern a complicated problem may constitute considerable material, particularly so, if the code is circumstantial (which it is in most arrangements). This material must be remembered.
While it appeared that various parts of this memory have to perform functions which differ somewhat in their nature and considerably in their purpose, it is nevertheless tempting to treat the entire memory as one organ, and to have its parts even as interchangeable as possible for the various functions enumerated above.