The basic principle of the modern computer—the idea of controlling the machine's operations by means of a program of coded instructions stored in the computer's memory—was conceived by Alan Turing.Turing's abstract 'universal computing machine' of 1936, soon known simply as the universal Turing machine, consists of a limitless memory, in which both data and instructions are stored, and a scanner that moves back and forth through the memory, symbol by symbol, reading what it finds and writing further symbols.2 By inserting different programs into the memory, the machine is made to carry out different computations.Von Neumann's 'First Draft of a Report on the EDVAC', completed in the spring of 1945, also set out a design for an electronic stored-program digital computer ('EDVAC' stood for 'Electronic Discrete Variable Computer').Von Neumann's report, to which Turing referred in 'Proposed Electronic Calculator', was more abstract than Turing's, saying little about programming or electronics.His technical report 'Proposed Electronic Calculator', dating from the end of 1945 and containing his design for the Automatic Computing Engine (ACE), was the first relatively complete specification of an electronic stored-program digital computer.In the United States the Hungarian-American mathematician John von Neumann shared Turing's dream of building a universal stored-program computing machine.Nowadays, when so many people possess a physical realization of the universal Turing machine, Turing's idea of a one-stop-shop computing machine might seem as obvious as the wheel.

The tape is divided into squares, each of which may be blank or may bear a single symbol ('0' or '1', for example, or some other symbol taken from a finite alphabet).Changing state consists in shifting the dial's pointer from one labelled position to another.This device functions as a simple memory; for example, a dial with three positions can be used to record whether the square that the scanner has just vacated contained '0' or '1', or was blank.The tape itself is limitless—in fact Turing's aim was to show that there are tasks that Turing machines cannot perform, even given unlimited working memory and unlimited time.A Turing machine has a small repertoire of basic operations: move left one square, move right one square, print, and change state. The scanner can print a symbol on the scanned square (after erasing any existing symbol).

The tape is divided into squares, each of which may be blank or may bear a single symbol ('0' or '1', for example, or some other symbol taken from a finite alphabet).

Changing state consists in shifting the dial's pointer from one labelled position to another.

This device functions as a simple memory; for example, a dial with three positions can be used to record whether the square that the scanner has just vacated contained '0' or '1', or was blank.

The tape itself is limitless—in fact Turing's aim was to show that there are tasks that Turing machines cannot perform, even given unlimited working memory and unlimited time.

A Turing machine has a small repertoire of basic operations: move left one square, move right one square, print, and change state. The scanner can print a symbol on the scanned square (after erasing any existing symbol).

The operation of the machine is governed by (what Turing called) a table of instructions.