The world's first
stored-program computer (
SPC) to operate a regular computing service was a machine known as the Electronic Delay Storage Automatic Calculator (EDSAC) at Cambridge University in England. Based on principles expounded by J. Presper Eckert Jr. and John W. Mauchly, who designed and built the
ENIAC at the Moore School of Electrical Engineering at the
University of Pennsylvania, the EDSAC was the first fully operational and productive SPC.
With its 3,500 valves (vacuum tubes), EDSAC filled dozens of shelves in two rows of metal racks reminiscent of library shelving. Reaching nearly to the ceiling of a dingy room on the top floor of the
university's Mathematical Laboratory, the machine looked like an overgrown, highly elaborate version of an
old-fashioned radio stripped of its cabinet.
Nearby were three cathode ray tube monitors. The circular faces of these oscilloscopes each displayed a square array of glowing spots to indicate the contents of the computer's memory, where the program's instructions were stored as rapidly circulating electrical pulses. To one side, on a table, rested the paper-tape reader and a teleprinter.
This machine could store a list of instructions, then perform the required calculation. A user could simply submit different sets of instructions. Unlike earlier machines, nothing about the computer itself had to be changed to perform different calculations. No one had to set switches or alter the wiring inside the device.
Programming the EDSAC involved writing out in detail the sequence of steps required to perform a
calculation, using a set of instructions provided by the computer's designers. For example, the letter "A"
combined with the number "45" meant adding the number stored in memory location 45 to the contents of a
special location, or register, called the accumulator. "S" meant subtract, "I" stood for reading the next
character from the paper tape and storing it in a specified location, and "O" instructed the computer to print
the character. There were 18 such commands in all, each specified by a one-letter code.
A programmer would typically end up writing a sequence such as TLA8LE105SS8LS8L... and giving the
listing to a clerk who operated a machine for punching holes in a strip of paper tape. Each instruction was represented by a pattern of holes and blanks, occupying five spaces across the tape's width.
The tape would go into the paper-tape reader, which would send electrical pulses corresponding to the
tape's pattern to the computer. The computer itself would translate these strings of pulses into the appropriate sequences for storing the program and performing the required calculation.
The EDSAC made its debut on May 6, 1949, when a length of perforated paper tape was threaded through the tape reader connected to the machine, and a few seconds later, the computer's printer began clattering out a list of numbers: 1, 4, 9, 16, 25, 36.... The system worked just as it was supposed to, marking the first time that a full-scale computer had run a program successfully.
The next two programs also worked flawlessly, printing out another, more complicated table of squares and a
table of prime numbers.
The description above was adapted from http://www.maa.org/mathland/mathland_7_1.html
At http://www.dcs.warwick.ac.uk/~edsac/ you can find a downloadable EDSAC simulator, providing a useful introduction to the Von Neumann architecture.