A program that is stored in the memory of a computer. The execution of the program then requires the use of a control unit – to read instructions from the memory at appropriate times and arrange to carry them out.
The memory used to store the program may be the same as or different from memory used to store the data. There are advantages in using the same (read-write) memory, allowing programs to be modified, but there may be advantages in limiting opportunities for program modification, either by using physically read-only memory or by restricting access to the part of the memory containing programs.
The concept of program and data sharing the same memory is fundamental to what is usually referred to as a von Neumann machine or a von Neumann architecture. Although there is some disagreement as to whether the stored-program concept was originated by John von Neumann or by the team of John W. Mauchly and J. Presper Eckert, the first documentation was written by von Neumann in 1945 in his proposal for the EDVAC. Details of the world's first working stored program computer commissioned at Manchester University, U.K., by F. C. Williams and T. Kilburn, were published in 1948 (see Manchester Mark I).