|Ivars Peterson's MathTrek|
July 1, 1996
One of the first pioneering machines was a computer 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 stored-program computer.
With its 3,500 vacuum tubes, this electronic contraption 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 EDSAC looked like an overgrown, highly elaborate version of an old-fashioned radio stripped of its cabinet.
Nearby were three cathode-ray-tube monitors -- primitive versions of present-day television picture tubes. 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 the clanking teleprinter.
This newly minted machine could store a list of instructions, then perform the required calculation. A user could simply submit different sets of instructions. Unlike the situation with 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 tortuous 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 would become a certain 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 of holes and blanks 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 computational 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, pinting out another, more complicated table of squares and a table of prime numbers.
Until the EDSAC ran its first programs that spring, no one had yet made a serious study of programming. The emphasis had always been on designing and constructing the machines and getting the fragile, jittery vacuum-tube electronics to work. In reports written by mathematician John von Neumann, then at the Institute for Advanced Study in Princeton and inventor of the concept of a stored-program computer, there was no hint that a program might not work the first time it was presented to a computer.
Accordingly, there was a surprise in store for the first group that finished building such a machine and tried to run a program that called for more than a few simple mathematical operations.
I'll continue the story next week.
Campbell-Kelly, M. 1992. The Airy tape: An early chapter in the history of debugging. IEEE Annals of the History of Computing 14(No. 4):16-26.
______. 1980. Programming the EDSAC: Early programming activity at the University of Cambridge. IEEE Annals of the History of Computing 2(No. 1):7-36.
Hayes, B. 1993. The discovery of debugging. The Sciences 33(July-August):10-13.
Wheeler, D.J. 1992. The EDSAC programming systems. IEEE Annals of the History of Computing 14(No. 4):34-40.
Wheeler, J.M. 1992. Applications of the EDSAC. IEEE Annals of the History of Computing 14(No. 4):27-33.
Wilkes, M.V. 1949. Electronic calculating-machine development in Cambridge. Nature 164(Oct. 1):557-558.
______. 1985. Memoirs of a Computer Pioneer. Cambridge, Mass.: MIT Press.
Martin Campbell-Kelly has a home page at http://www.dcs.warwick.ac.uk/people/academic/Martin.Campbell-Kelly/. His EDSAC simulator can be found at http://www.dcs.warwick.ac.uk/~edsac/.
The University of Cambridge Computer Laboratory archive of EDSAC photos is available at http://www.cl.cam.ac.uk/Relics/archive_photos.html.
The EDSAC 99 meeting celebrated the 50th anniversary of EDSAC 1: http://www.cl.cam.ac.uk/UoCCL/misc/EDSAC99/.