A Turing machine is a mathematical model of computation that defines an abstract machine, which manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, given any computer algorithm, a Turing machine capable of simulating that algorithm's logic can be constructed.
The Turing machine was invented in 1936 by Alan Turing, who called it an a-machine (automatic machine).
With this model, Turing was able to answer two questions in the negative: (1) Does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task); similarly, (2) does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol. Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the uncomputability of the Entscheidungsproblem ("decision problem").
Thus, Turing machines prove fundamental limitations on the power of mechanical computation.
Formal definition
Following Hopcroft and Ullman (1979, p. 148), a (one-tape) Turing machine can be formally defined as a 7-tuple where
Omitted
Turing machine "state" diagrams
Tape symbol | Current state A | Current state B | Current state C | ||||||
---|---|---|---|---|---|---|---|---|---|
Write symbol | Move tape | Next state | Write symbol | Move tape | Next state | Write symbol | Move tape | Next state | |
0 | P | R | B | P | L | A | P | L | B |
1 | P | L | C | P | R | B | P | R | HALT |
1970–present: the Turing machine as a model of computation
Today, the counter, register and random-access machines and their sire the Turing machine continue to be the models of choice for theorists investigating questions in the theory of computation.