A stored-program computer is a computer that stores program instructions in electronic memory. Often the definition is extended with the requirement that the treatment of programs and data in memory be interchangeable or uniform.
A computer with a von Neumann architecture stores program data and instruction data in the same memory; a computer with a Harvard architecture has separate memories for storing program and data. Both are stored-program designs.
Stored-program computer is sometimes used as a synonym for von Neumann architecture, however Professor Jack Copeland considers that it is "historically inappropriate, to refer to electronic stored-program digital computers as 'von Neumann machines'". Hennessy and Patterson write that the early Harvard machines were regarded as "reactionary by the advocates of stored-program computers".
The stored-program computer idea can be traced back to the 1936 theoretical concept of a universal Turing machine. Von Neumann was aware of this paper, and he impressed it on his collaborators as well.
Many early computers, such as the Atanasoff–Berry computer, were not reprogrammable. They executed a single hardwired program. As there were no program instructions, no program storage was necessary. Other computers, though programmable, stored their programs on punched tape, which was physically fed into the machine as needed.
The University of Manchester's Manchester Small-Scale Experimental Machine (SSEM) is generally recognized as world's first electronic computer that ran a stored program—an event that occurred on 21 June 1948. However the SSEM was not regarded as a full-fledged computer, but more a proof of concept predecessor to the Manchester Mark 1 computer, which was first put to research work in April 1949. On 6 May 1949 the EDSAC in Cambridge ran its first program, making it arguably "the first complete and fully operational regular electronic digital stored-program computer". It is sometimes claimed that the IBM SSEC, operational in January 1948, was the first stored-program computer; this claim is controversial, not least because of the hierarchical memory system of the SSEC, and because some aspects of its operations, like access to relays or tape drives, were determined by plugging. The first stored-program computer to be built in continental Europe was the MESM, completed in the Soviet Union in 1951.
Candidates for the first stored-program computer
Several computers could be considered the first stored-program computer, depending on the criteria.
- ARC2, developed by Andrew Booth and Kathleen Booth at Birkbeck, University of London, officially came online on May 12, 1948. It featured the first rotating drum storage device.
- Manchester Small-Scale Experimental Machine, an experimental computer that successfully ran a stored program on June 21, 1948. It was subsequently developed into the Manchester Mark 1, which ran its first program in early April 1949.
- Electronic Delay Storage Automatic Calculator, EDSAC, which became fully operational providing a service to a range of customers on May 6, 1949.
- EDVAC, conceived in 1945 but not delivered until August 1949.
- BINAC, delivered to a customer on August 22, 1949. It worked at the factory but there is disagreement about whether or not it worked satisfactorily after being delivered. If it had been finished at the projected time, it would have been the first stored-program computer in the world. It was the first stored-program computer in the U.S.
- ETL Mark III, which began development in 1954 and was completed in 1956, was the first stored-program transistor computer. It was created by Japan's Electrotechnical Laboratory.
- Allison, Joanne (1997), Stored-program Computers, archived from the original on 27 September 2011, retrieved 24 August 2011
- William F. Gilreath; Phillip A. Laplante (2003). Computer Architecture: A Minimalist Perspective. Springer. p. 24. ISBN 978-1-4020-7416-5.
- Edwin D. Reilly (2003). Milestones in computer science and information technology. Greenwood Publishing Group. p. 245. ISBN 978-1-57356-521-9.
- Murdocca, Miles J.; Vincent P. Heuring (2000). Principles of Computer Architecture. Prentice-Hall. p. 5. ISBN 0-201-43664-7.
- Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 148. ISBN 978-1-84882-255-9.
- Mark Balch (2003). Complete digital design: a comprehensive guide to digital electronics and computer system architecture. McGraw-Hill Professional. p. 149. ISBN 978-0-07-140927-8. Retrieved 18 May 2011.
- Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 153. ISBN 978-1-84882-255-9.
- Ivor Grattan-Guinness (2003). Companion encyclopedia of the history and philosophy of the mathematical sciences. JHU Press. p. 705. ISBN 978-0-8018-7396-6.
- Copeland, Jack (2000), A Brief History of Computing: ENIAC and EDVAC, retrieved 27 January 2010
- John L. Hennessy; David A. Patterson; David Goldberg (2003). Computer architecture: a quantitative approach. Morgan Kaufmann. p. 68. ISBN 978-1-55860-724-8.
- B. Jack Copeland (2006). Colossus: the secrets of Bletchley Park's codebreaking computers. Oxford University Press. p. 104. ISBN 978-0-19-284055-4.
- Christof Teuscher (2004). Alan Turing: life and legacy of a great thinker. Springer. p. 321–322. ISBN 978-3-540-20020-8.
- Williams, F. C; Kilburn, T (25 September 1948), "Electronic Digital Computers", Nature, 162 (4117): 487, doi:10.1038/162487a0, archived from the original on 6 April 2009, retrieved 10 April 2009
- Susanne Faber, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000
- Williams, Frederic; Kilburn, Tom (1948). "Electronic Digital Computers". Nature. 162 (4117): 487. doi:10.1038/162487a0. Archived from the original on 6 April 2009.
- Rául Rojas; Ulf Hashagen (2002). The first computers: history and architectures. MIT Press. p. 379. ISBN 978-0-262-68137-7.
- Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 158. ISBN 978-1-84882-255-9.
- Mike Hally (2005). Electronic brains: stories from the dawn of the computer age. National Academies Press. p. 96. ISBN 978-0-309-09630-0.
- Emerson W. Pugh (1995). Building IBM: shaping an industry and its technology. MIT Press. p. 136. ISBN 978-0-262-16147-3.
- Olley, A. (2010). "Existence Precedes Essence - Meaning of the Stored-Program Concept" (PDF). History of Computing. Learning from the Past. IFIP Advances in Information and Communication Technology. 325: 169. doi:10.1007/978-3-642-15199-6_17. ISBN 978-3-642-15198-9.
- Graham, Loren R. (1993). Science in Russia and the Soviet Union: A Short History. Cambridge University Press. p. 256.
- Edwin D. Reilly (2003). Milestones in Computer Science and Information Technology, p. 245.
- Campbell-Kelly, Martin (April 1982). "The Development of Computer Programming in Britain (1945 to 1955)". IEEE Annals of the History of Computing. 4 (2): 121–139. doi:10.1109/MAHC.1982.10016.
- Lavington, Simon, ed. (2012). Alan Turing and his Contemporaries: Building the World's First Computers. London: British Computer Society. p. 61. ISBN 9781906124908.
- Johnson, Roger (April 2008). "School of Computer Science & Information Systems: A Short History" (PDF). Birkbeck College. University of London. Retrieved 23 July 2017.
- Hally, Mike. Electronic Brains, 2005, pp. 40-41.
- Martin Fransman (1993), The Market and Beyond: Cooperation and Competition in Information Technology, page 19, Cambridge University Press
- Early Computers, Information Processing Society of Japan
- 【Electrotechnical Laboratory】 ETL Mark III Transistor-Based Computer, Information Processing Society of Japan
- Early Computers: Brief History, Information Processing Society of Japan