Stored-program computer

Last updated

A stored-program computer is a computer that stores program instructions in electronic memory. [1] This contrasts with machines where the program instructions are stored on plugboards or similar mechanisms.

A computer is a machine that can be instructed to carry out sequences of arithmetic or logical operations automatically via computer programming. Modern computers have the ability to follow generalized sets of operations, called programs. These programs enable computers to perform an extremely wide range of tasks. A "complete" computer including the hardware, the operating system, and peripheral equipment required and used for "full" operation can be referred to as a computer system. This term may as well be used for a group of computers that are connected and work together, in particular a computer network or computer cluster.


A plugboard, or control panel, is an array of jacks, or sockets, into which patch cords can be inserted to complete an electrical circuit. Control panels were used to direct the operation of some unit record equipment. Plugboards were used on some cipher machines, and some early computers.


Often the definition is extended with the requirement that the treatment of programs and data in memory be interchangeable or uniform. [2] [3] [4]


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. [5] [6] Both are stored-program designs.

Von Neumann architecture computer architecture where code and data share a common bus

The von Neumann architecture—also known as the von Neumann model or Princeton architecture—is a computer architecture based on a 1945 description by the mathematician and physicist John von Neumann and others in the First Draft of a Report on the EDVAC. That document describes a design architecture for an electronic digital computer with these components:

Harvard architecture computer architecture where code and data each have a separate bus

The Harvard architecture is a computer architecture with physically separate storage and signal pathways for instructions and data. The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape and data in electro-mechanical counters. These early machines had data storage entirely contained within the central processing unit, and provided no access to the instruction storage as data. Programs needed to be loaded by an operator; the processor could not initialize itself.

Stored-program computer is sometimes used as a synonym for von Neumann architecture, [7] [8] however Professor Jack Copeland considers that it is "historically inappropriate, to refer to electronic stored-program digital computers as 'von Neumann machines'". [9] Hennessy and Patterson write that the early Harvard machines were regarded as "reactionary by the advocates of stored-program computers". [10]

Jack Copeland philosopher, logician, historian of science

Brian Jack Copeland is Professor of Philosophy at the University of Canterbury, Christchurch, New Zealand, and author of books on the computing pioneer Alan Turing.


The stored-program computer idea can be traced back to the 1936 theoretical concept of a universal Turing machine. [11] Von Neumann was aware of this paper, and he impressed it on his collaborators as well. [12]

In computer science, a universal Turing machine (UTM) is a Turing machine that can simulate an arbitrary Turing machine on arbitrary input. The universal machine essentially achieves this by reading both the description of the machine to be simulated as well as the input thereof from its own tape. Alan Turing introduced the idea of such a machine in 1936–1937. This principle is considered to be the origin of the idea of a stored-program computer used by John von Neumann in 1946 for the "Electronic Computing Instrument" that now bears von Neumann's name: the von Neumann architecture.

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.

Atanasoff–Berry computer early electronic digital computing device

The Atanasoff–Berry computer (ABC) was the first automatic electronic digital computer, an early electronic digital computing device that has remained somewhat obscure. The ABC's priority is debated among historians of computer technology, because it was neither programmable, nor Turing-complete.

Punched tape form of data storage

Punched tape or perforated paper tape is a form of data storage, consisting of a long strip of paper in which holes are punched to store data. Now effectively obsolete, it was widely used during much of the twentieth century for teleprinter communication, for input to computers of the 1950s and 1960s, and later as a storage medium for minicomputers and CNC machine tools.

In 1936 Konrad Zuse anticipated in two patent applications that machine instructions could be stored in the same storage used for data. [13] [14]

The University of Manchester's Baby [15] is generally recognized as world's first electronic computer that ran a stored programan event that occurred on 21 June 1948. [16] [17] However the Baby 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". [18] It is sometimes claimed that the IBM SSEC, operational in January 1948, was the first stored-program computer; [19] 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. [20] The first stored-program computer to be built in continental Europe was the MESM, completed in the Soviet Union in 1951. [21]

The first stored-program computer

Several computers could be considered the first stored-program computer, depending on the criteria. [22]

See also

Related Research Articles

Central processing unit Electronic circuitry within a computer that carries out the instructions of a computer program by performing the basic arithmetic, logical, control and input/output (I/O) operations specified by the instructions

A central processing unit (CPU), also called a central processor or main processor, is the electronic circuitry within a computer that carries out the instructions of a computer program by performing the basic arithmetic, logic, controlling, and input/output (I/O) operations specified by the instructions. The computer industry has used the term "central processing unit" at least since the early 1960s. Traditionally, the term "CPU" refers to a processor, more specifically to its processing unit and control unit (CU), distinguishing these core elements of a computer from external components such as main memory and I/O circuitry.

ENIAC electronic general-purpose computer

ENIAC was the first electronic general-purpose computer. It was Turing-complete, digital and able to solve "a large class of numerical problems" through reprogramming.

J. Presper Eckert American electrical engineer and computer pioneer

John Adam Presper "Pres" Eckert Jr. was an American electrical engineer and computer pioneer. With John Mauchly, he designed the first general-purpose electronic digital computer (ENIAC), presented the first course in computing topics, founded the Eckert–Mauchly Computer Corporation, and designed the first commercial computer in the U.S., the UNIVAC, which incorporated Eckert's invention of the mercury delay line memory.

EDVAC second computer after ENIAC

EDVAC was one of the earliest electronic computers. Unlike its predecessor the ENIAC, it was binary rather than decimal, and was designed to be a stored-program computer.

John William Mauchly was an American physicist who, along with J. Presper Eckert, designed ENIAC, the first general purpose electronic digital computer, as well as EDVAC, BINAC and UNIVAC I, the first commercial computer made in the United States.

Z3 (computer) First working programmable, fully automatic digital computer

The Z3 was a German electromechanical computer designed by Konrad Zuse. It was the world's first working programmable, fully automatic digital computer. The Z3 was built with 2,600 relays, implementing a 22-bit word length that operated at a clock frequency of about 4–5 Hz. Program code was stored on punched film. Initial values were entered manually.

Harvard Mark I early american computer

The IBM Automatic Sequence Controlled Calculator (ASCC), called Mark I by Harvard University’s staff, was a general purpose electromechanical computer that was used in the war effort during the last part of World War II.

IAS machine

The IAS machine was the first electronic computer to be built at the Institute for Advanced Study (IAS) in Princeton, New Jersey. It is sometimes called the von Neumann machine, since the paper describing its design was edited by John von Neumann, a mathematics professor at both Princeton University and IAS. The computer was built from late 1945 until 1951 under his direction. The general organization is called Von Neumann architecture, even though it was both conceived and implemented by others. The computer is in the collection of the Smithsonian National Museum of American History but is not currently on display.

Herman Goldstine American mathematician

Herman Heine Goldstine was a mathematician and computer scientist, who worked as the director of the IAS machine at Princeton University's Institute for Advanced Study, and helped to develop ENIAC, the first of the modern electronic digital computers. He subsequently worked for many years at IBM as an IBM Fellow, the company's most prestigious technical position.

The First Draft of a Report on the EDVAC is an incomplete 101-page document written by John von Neumann and distributed on June 30, 1945 by Herman Goldstine, security officer on the classified ENIAC project. It contains the first published description of the logical design of a computer using the stored-program concept, which has controversially come to be known as the von Neumann architecture.

Automatic Computing Engine

The Automatic Computing Engine (ACE) was a British early electronic stored-program computer designed by Alan Turing.

The IBM Selective Sequence Electronic Calculator (SSEC) was an electromechanical computer built by IBM. Its design was started in late 1944, and it operated from January 1948 to August 1952. It had many of the features of a stored-program computer and was the first operational machine able to treat its instructions as data, but it was not fully electronic. Although the SSEC proved useful for several high-profile applications it soon became obsolete. As the last large electromechanical computer ever built, its greatest success was the publicity it provided for IBM.

Minimal instruction set computer

Minimal instruction set computer (MISC) is a processor architecture with a very small number of basic operations and corresponding opcodes. Such instruction sets are commonly stack-based rather than register-based to reduce the size of operand specifiers.

Theory and Techniques for Design of Electronic Digital Computers was a course in the construction of electronic digital computers held at the University of Pennsylvania's Moore School of Electrical Engineering between July 8, 1946, and August 30, 1946, and was the first time any computer topics had ever been taught to an assemblage of people. The course disseminated the ideas developed for the EDVAC and initiated an explosion of computer construction activity in the United States and internationally, especially in the United Kingdom.

Cuthbert Hurd American computer scientist

Cuthbert Corwin Hurd was an American computer scientist and entrepreneur, who was instrumental in helping the International Business Machines Corporation develop its first general-purpose computers.

Manchester Mark 1 early english computer

The Manchester Mark 1 was one of the earliest stored-program computers, developed at the Victoria University of Manchester from the Manchester Baby. It was also called the Manchester Automatic Digital Machine, or MADM. Work began in August 1948, and the first version was operational by April 1949; a program written to search for Mersenne primes ran error-free for nine hours on the night of 16/17 June 1949.

Computer architecture Set of rules and methods that describe the functionality, organization, and implementation of computer systems

In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems. Some definitions of architecture define it as describing the capabilities and programming model of a computer but not a particular implementation. In other definitions computer architecture involves instruction set architecture design, microarchitecture design, logic design, and implementation.


  1. Allison, Joanne (1997), Stored-program Computers, archived from the original on 27 September 2011, retrieved 24 August 2011
  2. William F. Gilreath; Phillip A. Laplante (2003). Computer Architecture: A Minimalist Perspective. Springer. p. 24. ISBN   978-1-4020-7416-5.
  3. Edwin D. Reilly (2003). Milestones in computer science and information technology. Greenwood Publishing Group. p. 245. ISBN   978-1-57356-521-9.
  4. Murdocca, Miles J.; Vincent P. Heuring (2000). Principles of Computer Architecture. Prentice-Hall. p. 5. ISBN   0-201-43664-7.
  5. Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 148. ISBN   978-1-84882-255-9.
  6. 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.
  7. Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 153. ISBN   978-1-84882-255-9.
  8. 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.
  9. Copeland, Jack (2000), A Brief History of Computing: ENIAC and EDVAC , retrieved 27 January 2010
  10. John L. Hennessy; David A. Patterson; David Goldberg (2003). Computer architecture: a quantitative approach. Morgan Kaufmann. p. 68. ISBN   978-1-55860-724-8.
  11. B. Jack Copeland (2006). Colossus: the secrets of Bletchley Park's codebreaking computers. Oxford University Press. p. 104. ISBN   978-0-19-284055-4.
  12. Christof Teuscher (2004). Alan Turing: life and legacy of a great thinker. Springer. p. 321322. ISBN   978-3-540-20020-8.
  13. 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
  14. Susanne Faber, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000
  15. Williams, Frederic; Kilburn, Tom (1948). "Electronic Digital Computers". Nature. 162 (4117): 487. doi:10.1038/162487a0. Archived from the original on 6 April 2009.
  16. Rául Rojas; Ulf Hashagen (2002). The first computers: history and architectures. MIT Press. p. 379. ISBN   978-0-262-68137-7.
  17. Daniel Page (2009). A Practical Introduction to Computer Architecture. Springer. p. 158. ISBN   978-1-84882-255-9.
  18. Mike Hally (2005). Electronic brains: stories from the dawn of the computer age. National Academies Press. p. 96. ISBN   978-0-309-09630-0.
  19. Emerson W. Pugh (1995). Building IBM: shaping an industry and its technology. MIT Press. p. 136. ISBN   978-0-262-16147-3.
  20. 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.
  21. Graham, Loren R. (1993). Science in Russia and the Soviet Union: A Short History. Cambridge University Press. p. 256.
  22. Edwin D. Reilly (2003). Milestones in Computer Science and Information Technology, p. 245.
  23. Emerson W. Pugh; Lyle R. Johnson; John H. Palmer (1991). IBM's 360 and Early 370 Systems. MIT Press. p. 15. ISBN   978-0-262-51720-1.
  24. Thomas Haigh; Mark Priestley; Crispen Rope (2016). ENIAC in Action:Making and Remaking the Modern Computer. MIT Press. pp. 153, 157. ISBN   978-0-262-03398-5.
  25. Epic Technology for Great Justice – ENIAC
  26. 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.
  27. Lavington, Simon, ed. (2012). Alan Turing and his Contemporaries: Building the World's First Computers. London: British Computer Society. p. 61. ISBN   9781906124908.
  28. Johnson, Roger (April 2008). "School of Computer Science & Information Systems: A Short History" (PDF). Birkbeck College. University of London. Retrieved 23 July 2017.
  29. Hally, Mike. Electronic Brains, 2005, pp. 40-41.
  30. Martin Fransman (1993), The Market and Beyond: Cooperation and Competition in Information Technology, page 19, Cambridge University Press
  31. Early Computers, Information Processing Society of Japan
  32. 【Electrotechnical Laboratory】 ETL Mark III Transistor-Based Computer, Information Processing Society of Japan
  33. Early Computers: Brief History, Information Processing Society of Japan