Turing machine
Encyclopedia
A Turing machine is a theoretical device that manipulates symbols on a strip of tape according to a table of rules. Despite its simplicity, a Turing machine can be adapted to simulate the logic of any computer
algorithm
, and is particularly useful in explaining the functions of a CPU inside a computer.
The "Turing" machine was described by Alan Turing
in 1936,
who called it an "a(utomatic)machine". The Turing machine is not intended as a practical computing technology, but rather as a thought experiment
representing a computing machine. Turing machines help computer scientists understand the limits of mechanical computation.
Turing gave a succinct definition of the experiment in his 1948 essay, "Intelligent Machinery". Referring to his 1936 publication, Turing wrote that the Turing machine, here called a Logical Computing Machine, consisted of:
A Turing machine that is able to simulate any other Turing machine is called a universal Turing machine
(UTM, or simply a universal machine). A more mathematicallyoriented definition with a similar "universal" nature was introduced by Alonzo Church
, whose work on lambda calculus
intertwined with Turing's in a formal theory of computation
known as the Church–Turing thesis
. The thesis states that Turing machines indeed capture the informal notion of effective method in logic
and mathematics
, and provide a precise definition of an algorithm
or 'mechanical procedure'.
Studying their abstract properties
yields many insights into computer science
and complexity theory
.
The Turing machine mathematically models a machine that mechanically operates on a tape. On this tape are symbols which the machine can read and write, one at a time, using a tape head. Operation is fully determined by a finite set of elementary instructions such as "in state 42, if the symbol seen is 0, write a 1; if the symbol seen is 1, shift to the right, and change into state 17; in state 17, if the symbol seen is 0, write a 1 and change to state 6;" etc. In the original article ("On computable numbers, with an application to the Entscheidungsproblem
", see also references below), Turing imagines not a mechanism, but a person whom he calls the "computer", who executes these deterministic mechanical rules slavishly (or as Turing puts it, "in a desultory manner").
More precisely, a Turing machine consists of:
Note that every part of the machine—its state and symbolcollections—and its actions—printing, erasing and tape motion—is finite, discrete and distinguishable; it is the potentially unlimited amount of tape that gives it an unbounded amount of storage space
.
:
where
Anything that operates according to these specifications is a Turing machine.
The 7tuple for the 3state busy beaver
looks like this (see more about this busy beaver at Turing machine examples
):
Initially all tape cells are marked with 0.
For instance,
The most common convention represents each "Turing instruction" in a "Turing table" by one of nine 5tuples, per the convention of Turing/Davis (Turing (1936) in Undecidable, p. 126127 and Davis (2000) p. 152):
Other authors (Minsky (1967) p. 119, Hopcroft and Ullman (1979) p. 158, Stone (1972) p. 9) adopt a different convention, with new state q_{m} listed immediately after the scanned symbol S_{j}:
For the remainder of this article "definition 1" (the Turing/Davis convention) will be used.
In the following table, Turing's original model allowed only the first three lines that he called N1, N2, N3 (cf Turing in Undecidable, p. 126). He allowed for erasure of the "scanned square" by naming a 0th symbol S_{0} = "erase" or "blank", etc. However, he did not allow for nonprinting, so every instructionline includes "print symbol S_{k}" or "erase" (cf footnote 12 in Post (1947), Undecidable p. 300). The abbreviations are Turing's (Undecidable p. 119). Subsequent to Turing's original paper in 1936–1937, machinemodels have allowed all nine possible types of fivetuples:
Any Turing table (list of instructions) can be constructed from the above nine 5tuples. For technical reasons, the three nonprinting or "N" instructions (4, 5, 6) can usually be dispensed with. For examples see Turing machine examples
.
Less frequently the use of 4tuples are encountered: these represent a further atomization of the Turing instructions (cf Post (1947), Boolos & Jeffrey (1974, 1999), DavisSigalWeyuker (1994)); also see more at Post–Turing machine.
Earlier in his paper Turing carried this even further: he gives an example where he places a symbol of the current "mconfiguration"—the instruction's label—beneath the scanned square, together with all the symbols on the tape (Undecidable, p. 121); this he calls "the complete configuration" (Undecidable, p. 118). To print the "complete configuration" on one line he places the statelabel/mconfiguration to the left of the scanned symbol.
A variant of this is seen in Kleene (1952) where Kleene shows how to write the Gödel number
of a machine's "situation": he places the "mconfiguration" symbol q_{4} over the scanned square in roughly the center of the 6 nonblank squares on the tape (see the Turingtape figure in this article) and puts it to the right of the scanned square. But Kleene refers to "q_{4}" itself as "the machine state" (Kleene, p. 374375). Hopcroft and Ullman call this composite the "instantaneous description" and follow the Turing convention of putting the "current state" (instructionlabel, mconfiguration) to the left of the scanned symbol (p. 149).
Example: total state of 3state 2symbol busy beaver after 3 "moves" (taken from example "run" in the figure below):
This means: after three moves the tape has ... 000110000 ... on it, the head is scanning the rightmost 1, and the state is A. Blanks (in this case represented by "0"s) can be part of the total state as shown here: B01 ; the tape has a single 1 on it, but the head is scanning the 0 ("blank") to its left and the state is B.
"State" in the context of Turing machines should be clarified as to which is being described: (i) the current instruction, or (ii) the list of symbols on the tape together with the current instruction, or (iii) the list of symbols on the tape together with the current instruction placed to the left of the scanned symbol or to the right of the scanned symbol.
Turing's biographer Andrew Hodges (1983: 107) has noted and discussed this confusion.
To the right: the above TABLE as expressed as a "state transition" diagram.
Usually large TABLES are better left as tables (Booth, p. 74). They are more readily simulated by computer in tabular form (Booth, p. 74). However, certain concepts—e.g. machines with "reset" states and machines with repeating patterns (cf Hill and Peterson p. 244ff)—can be more readily seen when viewed as a drawing.
Whether a drawing represents an improvement on its TABLE must be decided by the reader for the particular context. See Finite state machine
for more.
The reader should again be cautioned that such diagrams represent a snapshot of their TABLE frozen in time, not the course ("trajectory") of a computation through time and/or space. While every time the busy beaver machine "runs" it will always follow the same statetrajectory, this is not true for the "copy" machine that can be provided with variable input "parameters".
The diagram "Progress of the computation" shows the 3state busy beaver's "state" (instruction) progress through its computation from start to finish. On the far right is the Turing "complete configuration" (Kleene "situation", Hopcroft–Ullman "instantaneous description") at each step. If the machine were to be stopped and cleared to blank both the "state register" and entire tape, these "configurations" could be used to rekindle a computation anywhere in its progress (cf Turing (1936) Undecidable pp. 139–140).
hypothesizes this to be true for any kind of machine: that anything that can be "computed" can be computed by some Turing machine.)
A Turing machine is equivalent to a pushdown automaton
that has been made more flexible and concise by relaxing the lastinfirstout requirement of its stack.
At the other extreme, some very simple models turn out to be Turingequivalent
, i.e. to have the same computational power as the Turing machine model.
Common equivalent models are the multitape Turing machine, multitrack Turing machine
, machines with input and output, and the nondeterministic Turing machine
(NDTM) as opposed to the deterministic Turing machine (DTM) for which the action table has at most one entry for each combination of symbol and state.
Readonly, rightmoving Turing Machines
are equivalent to NDFA's
(as well as DFA's
by conversion using the NDFA to DFA conversion algorithm).
For practical and didactical intentions the equivalent register machine
can be used as a usual assembly
programming language
.
Turing (1936) does not elaborate further except in a footnote in which he describes how to use an amachine to "find all the provable formulae of the [Hilbert] calculus" rather than use a choice machine. He "suppose[s] that the choices are always between two possibilities 0 and 1. Each proof will then be determined by a sequence of choices i_{1}, i_{2}, ..., i_{n} (i_{1} = 0 or 1, i_{2} = 0 or 1, ..., i_{n} = 0 or 1), and hence the number 2^{n} + i_{1}2^{n1} + i_{2}2^{n2} + ... +i_{n} completely determines the proof. The automatic machine carries out successively proof 1, proof 2, proof 3, ..." (Footnote ‡, Undecidable, p. 138)
This is indeed the technique by which a deterministic (i.e. a) Turing machine can be used to mimic the action of a nondeterministic Turing machine; Turing solved the matter in a footnote and appears to dismiss it from further consideration.
An oracle machine
or omachine is a Turing amachine that pauses its computation at state "o" while, to complete its calculation, it "awaits the decision" of "the oracle"—an unspecified entity "apart from saying that it cannot be a machine" (Turing (1939), Undecidable p. 166–168). The concept is now actively used by mathematicians.
This finding is now taken for granted, but at the time (1936) it was considered astonishing. The model of computation that Turing called his "universal machine"—"U" for short—is considered by some (cf Davis (2000)) to have been the fundamental theoretical breakthrough that led to the notion of the Storedprogram computer
.
In terms of computational complexity
, a multitape universal Turing machine need only be slower by logarithm
ic factor compared to the machines it simulates. This result was obtained in 1966 by F. C. Hennie and R. E. Stearns. (Arora and Barak, 2009, theorem 1.9)
. On the other hand, Turing machines are equivalent to machines that have an unlimited amount of storage space for their computations. In fact, Turing machines are not intended to model computers, but rather they are intended to model computation itself; historically, computers, which compute only on their (fixed) internal storage, were developed only later.
There are a number of ways to explain why Turing machines are useful models of real computers:
One way in which Turing machines are a poor model for programs is that many real programs, such as operating system
s and word processor
s, are written to receive unbounded input over time, and therefore do not halt. Turing machines do not model such ongoing computation well (but can still model portions of it, such as individual procedures).
known as the random access stored program machine
or RASP machine model. Like the Universal Turing machine
the RASP stores its "program" in "memory" external to its finitestate machine's "instructions". Unlike the Universal Turing Machine, the RASP has an infinite number of distinguishable, numbered but unbounded "registers"—memory "cells" that can contain any integer (cf. Elgot and Robinson (1964), Hartmanis (1971), and in particular CookRechow (1973); references at random access machine
). The RASP's finitestate machine is equipped with the capability for indirect addressing (e.g. the contents of one register can be used as an address to specify another register); thus the RASP's "program" can address any register in the registersequence. The upshot of this distinction is that there are computational optimizations that can be performed based on the memory indices, which are not possible in a general Turing Machine; thus when Turing Machines are used as the basis for bounding running times, a 'false lower bound' can be proven on certain algorithms' running times (due to the false simplifying assumption of a Turing Machine). An example of this is binary search, an algorithm that can be shown to perform more quickly when using the RASP model of computation rather than the Turing machine model.
.) By contrast, there are alwayshalting concurrent systems with no inputs that can compute an integer of unbounded size. (A process can be created with local storage that is initialized with a count of 0 that concurrently sends itself both a stop and a go message. When it receives a go message, it increments its count by 1 and sends itself a go message. When it receives a stop message, it stops with an unbounded number in its local storage.)
.
(1919–1995)—a student of Alan Turing
(1912–1954) and his lifelong friend—traces the lineage of the notion of "calculating machine" back to Babbage (circa 1834) and actually proposes "Babbage's Thesis":
Gandy's analysis of Babbage's Analytical Engine
describes the following five operations (cf p. 52–53):
Gandy states that "the functions which can be calculated by (1), (2), and (4) are precisely those which are Turing computable." (p. 53). He cites other proposals for "universal calculating machines" included those of Percy Ludgate
(1909), Leonardo Torres y Quevedo
(1914), Maurice d'Ocagne (1922), Louis Couffignal
(1933), Vannevar Bush
(1936), Howard Aiken
(1937). However:
posed by the famous mathematician David Hilbert
in 1900, an aspect of problem #10 had been floating about for almost 30 years before it was framed precisely. Hilbert's original expression for #10 is as follows:
By 1922, this notion of "Entscheidungsproblem
" had developed a bit, and H. Behmann
stated that
By the 1928 international congress of mathematicians Hilbert "made his questions quite precise. First, was mathematics complete ... Second, was mathematics consistent
... And thirdly, was mathematics decidable
?" (Hodges p. 91, Hawking p. 1121). The first two questions were answered in 1930 by Kurt Gödel
at the very same meeting where Hilbert delivered his retirement speech (much to the chagrin of Hilbert); the third—the Entscheidungsproblem—had to wait until the mid1930s.
The problem was that an answer first required a precise definition of "definite general applicable prescription", which Princeton professor Alonzo Church
would come to call "effective calculability", and in 1928 no such definition existed. But over the next 6–7 years Emil Post developed his definition of a worker moving from room to room writing and erasing marks per a list of instructions (Post 1936), as did Church and his two students Stephen Kleene and J. B. Rosser by use of Church's lambdacalculus and Gödel's recursion theory
(1934). Church's paper (published 15 April 1936) showed that the Entscheidungsproblem was indeed "undecidable" and beat Turing to the punch by almost a year (Turing's paper submitted 28 May 1936, published January 1937). In the meantime, Emil Post submitted a brief paper in the fall of 1936, so Turing at least had priority over Post. While Church refereed Turing's paper, Turing had time to study Church's paper and add an Appendix where he sketched a proof that Church's lambdacalculus and his machines would compute the same functions.
And Post had only proposed a definition of calculability
and criticized Church's "definition", but had proved nothing.
Gandy states that:
While Gandy believed that Newman's statement above is "misleading", this opinion is not shared by all. Turing had a lifelong interest in machines: "Alan had dreamt of inventing typewriters as a boy; [his mother] Mrs. Turing had a typewriter; and he could well have begun by asking himself what was meant by calling a typewriter 'mechanical'" (Hodges p. 96). While at Princeton pursuing his PhD, Turing built a Booleanlogic multiplier (see below). His PhD thesis, titled "Systems of Logic Based on Ordinals", contains the following definition of "a computable function":
When Turing returned to the UK he ultimately became jointly responsible for breaking the German secret codes created by encryption machines called "The Enigma"; he also became involved in the design of the ACE (Automatic Computing Engine), "[Turing's] ACE proposal was effectively selfcontained, and its roots lay not in the EDVAC
[the USA's initiative], but in his own universal machine" (Hodges p. 318). Arguments still continue concerning the origin and nature of what has been named by Kleene (1952) Turing's Thesis. But what Turing did prove with his computationalmachine model appears in his paper On Computable Numbers, With an Application to the Entscheidungsproblem (1937):
Turing's example (his second proof): If one is to ask for a general procedure to tell us: "Does this machine ever print 0", the question is "undecidable".
(1938)), and in the United States (Howard Aiken
) and George Stibitz
(1937); the fruits of their labors were used by the Axis and Allied military in World War II
(cf Hodges p. 298–299). In the early to mid1950s Hao Wang and Marvin Minsky
reduced the Turing machine to a simpler form (a precursor to the PostTuring machine
of Martin Davis
); simultaneously European researchers were reducing the newfangled electronic computer to a computerlike theoretical object equivalent to what was now being called a "Turing machine". In the late 1950s and early 1960s, the coincidentallyparallel developments of Melzak and Lambek (1961), Minsky (1961), and Shepherdson and Sturgis (1961) carried the European work further and reduced the Turing machine to a more friendly, computerlike abstract model called the counter machine
; Elgot and Robinson (1964), Hartmanis (1971), Cook and Reckhow (1973) carried this work even further with the register machine
and random access machine
models—but basically all are just multitape Turing machines with an arithmeticlike instruction set.
. In particular, computational complexity theory
makes use of the Turing machine:
Kantorovitz (2005), was the first to show the most simple obvious representation of Turing Machines published academically which unifies Turing Machines with mathematical analysis and analog computers.
) and recursive functions
, showing their equivalence.
Computer
A computer is a programmable machine designed to sequentially and automatically carry out a sequence of arithmetic or logical operations. The particular sequence of operations can be changed readily, allowing the computer to solve more than one kind of problem...
algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of welldefined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
, and is particularly useful in explaining the functions of a CPU inside a computer.
The "Turing" machine was described by Alan Turing
Alan Turing
Alan Mathison Turing, OBE, FRS , was an English mathematician, logician, cryptanalyst, and computer scientist. He was highly influential in the development of computer science, providing a formalisation of the concepts of "algorithm" and "computation" with the Turing machine, which played a...
in 1936,
who called it an "a(utomatic)machine". The Turing machine is not intended as a practical computing technology, but rather as a thought experiment
Thought experiment
A thought experiment or Gedankenexperiment considers some hypothesis, theory, or principle for the purpose of thinking through its consequences...
representing a computing machine. Turing machines help computer scientists understand the limits of mechanical computation.
Turing gave a succinct definition of the experiment in his 1948 essay, "Intelligent Machinery". Referring to his 1936 publication, Turing wrote that the Turing machine, here called a Logical Computing Machine, consisted of:
...an infinite memory capacity obtained in the form of an infinite tape marked out into squares, on each of which a symbol could be printed. At any moment there is one symbol in the machine; it is called the scanned symbol. The machine can alter the scanned symbol and its behavior is in part determined by that symbol, but the symbols on the tape elsewhere do not affect the behavior of the machine. However, the tape can be moved back and forth through the machine, this being one of the elementary operations of the machine. Any symbol on the tape may therefore eventually have an innings. (Turing 1948, p. 61)
A Turing machine that is able to simulate any other Turing machine is called a universal Turing machine
Universal Turing machine
In computer science, a universal Turing machine 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...
(UTM, or simply a universal machine). A more mathematicallyoriented definition with a similar "universal" nature was introduced by Alonzo Church
Alonzo Church
Alonzo Church was an American mathematician and logician who made major contributions to mathematical logic and the foundations of theoretical computer science. He is best known for the lambda calculus, Church–Turing thesis, Frege–Church ontology, and the Church–Rosser theorem.Life:Alonzo Church...
, whose work on lambda calculus
Lambda calculus
In mathematical logic and computer science, lambda calculus, also written as λcalculus, is a formal system for function definition, function application and recursion. The portion of lambda calculus relevant to computation is now called the untyped lambda calculus...
intertwined with Turing's in a formal theory of computation
Computation
Computation is defined as any type of calculation. Also defined as use of computer technology in Information processing.Computation is a process following a welldefined model understood and expressed in an algorithm, protocol, network topology, etc...
known as the Church–Turing thesis
Church–Turing thesis
In computability theory, the Church–Turing thesis is a combined hypothesis about the nature of functions whose values are effectively calculable; in more modern terms, algorithmically computable...
. The thesis states that Turing machines indeed capture the informal notion of effective method in logic
Logic
In philosophy, Logic is the formal systematic study of the principles of valid inference and correct reasoning. Logic is used in most intellectual activities, but is studied primarily in the disciplines of philosophy, mathematics, semantics, and computer science...
and mathematics
Mathematics
Mathematics is the study of quantity, space, structure, and change. Mathematicians seek out patterns and formulate new conjectures. Mathematicians resolve the truth or falsity of conjectures by mathematical proofs, which are arguments sufficient to convince other mathematicians of their validity...
, and provide a precise definition of an algorithm
Algorithm
In mathematics and computer science, an algorithm is an effective method expressed as a finite list of welldefined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
or 'mechanical procedure'.
Studying their abstract properties
Abstract machine
An abstract machine, also called an abstract computer, is a theoretical model of a computer hardware or software system used in automata theory...
yields many insights into computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
and complexity theory
Computational complexity theory
Computational complexity theory is a branch of the theory of computation in theoretical computer science and mathematics that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other...
.
Informal description
 For visualizations of Turing machines, see Turing machine galleryTuring machine galleryThe following article is a supplement to the article Turing machine. Turing machine as a mechanical device :The Turing machine shown here consists of a special paper tape that can be erased as well as written with a "tally mark". Perhaps the TABLE is made out of a similar "read only" paper tape...
.
The Turing machine mathematically models a machine that mechanically operates on a tape. On this tape are symbols which the machine can read and write, one at a time, using a tape head. Operation is fully determined by a finite set of elementary instructions such as "in state 42, if the symbol seen is 0, write a 1; if the symbol seen is 1, shift to the right, and change into state 17; in state 17, if the symbol seen is 0, write a 1 and change to state 6;" etc. In the original article ("On computable numbers, with an application to the Entscheidungsproblem
Entscheidungsproblem
In mathematics, the is a challenge posed by David Hilbert in 1928. The asks for an algorithm that will take as input a description of a formal language and a mathematical statement in the language and produce as output either "True" or "False" according to whether the statement is true or false...
", see also references below), Turing imagines not a mechanism, but a person whom he calls the "computer", who executes these deterministic mechanical rules slavishly (or as Turing puts it, "in a desultory manner").
More precisely, a Turing machine consists of:
 A tape which is divided into cells, one next to the other. Each cell contains a symbol from some finite alphabet. The alphabet contains a special blank symbol (here written as 'B') and one or more other symbols. The tape is assumed to be arbitrarily extendable to the left and to the right, i.e., the Turing machine is always supplied with as much tape as it needs for its computation. Cells that have not been written to before are assumed to be filled with the blank symbol. In some models the tape has a left end marked with a special symbol; the tape extends or is indefinitely extensible to the right.
 A head that can read and write symbols on the tape and move the tape left and right one (and only one) cell at a time. In some models the head moves and the tape is stationary.
 A finite table (occasionally called an action table or transition function) of instructions (usually quintuples [5tuples] : q_{i}a_{j}→q_{i1}a_{j1}d_{k}, but sometimes 4tuples) that, given the state(q_{i}) the machine is currently in and the symbol(a_{j}) it is reading on the tape (symbol currently under the head) tells the machine to do the following in sequence (for the 5tuple models):
 Either erase or write a symbol (instead of a_{j}, write a_{j1}), and then
 Move the head (which is described by d_{k} and can have values: 'L' for one step left or 'R' for one step right or 'N' for staying in the same place), and then
 Assume the same or a new state as prescribed (go to state q_{i1}).
In the 4tuple models, erase or write a symbol (a_{j1}) and move the head left or right (d_{k}) are specified as separate instructions. Specifically, the table tells the machine to (ia) erase or write a symbol or (ib) move the head left or right, and then (ii) assume the same or a new state as prescribed, but not both actions (ia) and (ib) in the same instruction. In some models, if there is no entry in the table for the current combination of symbol and state then the machine will halt; other models require all entries to be filled.  A state register that stores the state of the Turing machine, one of finitely many. There is one special start state with which the state register is initialized. These states, writes Turing, replace the "state of mind" a person performing computations would ordinarily be in.
Note that every part of the machine—its state and symbolcollections—and its actions—printing, erasing and tape motion—is finite, discrete and distinguishable; it is the potentially unlimited amount of tape that gives it an unbounded amount of storage space
Computer storage
Computer data storage, often called storage or memory, refers to computer components and recording media that retain digital data. Data storage is one of the core functions and fundamental components of computers....
.
Examples of Turing machines
To see examples of the following models, see Turing machine examplesTuring machine examples
Turing's very first example:The following table is Turing's very first example :With regard to what actions the machine actually does, Turing states the following:...
:
 Turing's very first machine
 Copy routine
 3state busy beaverBusy beaverIn computability theory, a busy beaver is a Turing machine that attains the maximum "operational busyness" among all the Turing machines in a certain class...
Formal definition
Hopcroft and Ullman (1979, p. 148) formally define a (onetape) Turing machine as a 7tupleTuple
In mathematics and computer science, a tuple is an ordered list of elements. In set theory, an ntuple is a sequence of n elements, where n is a positive integer. There is also one 0tuple, an empty sequence. An ntuple is defined inductively using the construction of an ordered pair...
where
 is a finite, nonempty set of states
 is a finite, nonempty set of the tape alphabet/symbols
 is the blank symbol (the only symbol allowed to occur on the tape infinitely often at any step during the computation)
 is the set of input symbols
 is the initial state
 is the set of final or accepting states.
 is a partial functionPartial functionIn mathematics, a partial function from X to Y is a function ƒ: X' → Y, where X' is a subset of X. It generalizes the concept of a function by not forcing f to map every element of X to an element of Y . If X' = X, then ƒ is called a total function and is equivalent to a function...
called the transition functionTransition functionIn mathematics, a transition function has several different meanings:* In topology, a transition function is a homeomorphism from one coordinate chart to another...
, where L is left shift, R is right shift. (A relatively uncommon variant allows "no shift", say N, as a third element of the latter set.)
Anything that operates according to these specifications is a Turing machine.
The 7tuple for the 3state busy beaver
Busy beaver
In computability theory, a busy beaver is a Turing machine that attains the maximum "operational busyness" among all the Turing machines in a certain class...
looks like this (see more about this busy beaver at Turing machine examples
Turing machine examples
Turing's very first example:The following table is Turing's very first example :With regard to what actions the machine actually does, Turing states the following:...
):
 Q = { A, B, C, HALT }
 Γ = { 0, 1 }
 b = 0 = "blank"
 Σ = { 1 }
 δ = see statetable below
 q_{0} = A = initial state
 F = the one element set of final states {HALT}
Initially all tape cells are marked with 0.
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  1  R  B  1  L  A  1  L  B 
1  1  L  C  1  R  B  1  R  HALT 
Additional details required to visualize or implement Turing machines
In the words of van Emde Boas (1990), p. 6: "The settheoretical object [his formal seventuple description similar to the above] provides only partial information on how the machine will behave and what its computations will look like."For instance,
 There will need to be some decision on what the symbols actually look like, and a failproof way of reading and writing symbols indefinitely.
 The shift left and shift right operations may shift the tape head across the tape, but when actually building a Turing machine it is more practical to make the tape slide back and forth under the head instead.
 The tape can be finite, and automatically extended with blanks as needed (which is closest to the mathematical definition), but it is more common to think of it as stretching infinitely at both ends and being prefilled with blanks except on the explicitly given finite fragment the tape head is on. (This is, of course, not implementable in practice.) The tape cannot be fixed in length, since that would not correspond to the given definition and would seriously limit the range of computations the machine can perform to those of a linear bounded automatonLinear bounded automatonIn computer science, a linear bounded automaton is a restricted form of nondeterministic Turing machine.Operation:Linear bounded automata satisfy the following three conditions:...
.
Alternative definitions
Definitions in literature sometimes differ slightly, to make arguments or proofs easier or clearer, but this is always done in such a way that the resulting machine has the same computational power. For example, changing the set to , where N ("None" or "Nooperation") would allow the machine to stay on the same tape cell instead of moving left or right, does not increase the machine's computational power.The most common convention represents each "Turing instruction" in a "Turing table" by one of nine 5tuples, per the convention of Turing/Davis (Turing (1936) in Undecidable, p. 126127 and Davis (2000) p. 152):
 (definition 1): (q_{i}, S_{j}, S_{k}/E/N, L/R/N, q_{m})
 ( current state q_{i} , symbol scanned S_{j} , print symbol S_{k}/erase E/none N , move_tape_one_square left L/right R/none N , new state q_{m} )
Other authors (Minsky (1967) p. 119, Hopcroft and Ullman (1979) p. 158, Stone (1972) p. 9) adopt a different convention, with new state q_{m} listed immediately after the scanned symbol S_{j}:
 (definition 2): (q_{i}, S_{j}, q_{m}, S_{k}/E/N, L/R/N)
 ( current state q_{i} , symbol scanned S_{j} , new state q_{m} , print symbol S_{k}/erase E/none N , move_tape_one_square left L/right R/none N )
For the remainder of this article "definition 1" (the Turing/Davis convention) will be used.
Current state  Scanned symbol  Print symbol  Move tape  Final (i.e. next) state  5tuples  

A  0  1  R  B  (A, 0, 1, R, B)  
A  1  1  L  C  (A, 1, 1, L, C)  
B  0  1  L  A  (B, 0, 1, L, A)  
B  1  1  R  B  (B, 1, 1, R, B)  
C  0  1  L  B  (C, 0, 1, L, B)  
C  1  1  N  H  (C, 1, 1, N, H) 
In the following table, Turing's original model allowed only the first three lines that he called N1, N2, N3 (cf Turing in Undecidable, p. 126). He allowed for erasure of the "scanned square" by naming a 0th symbol S_{0} = "erase" or "blank", etc. However, he did not allow for nonprinting, so every instructionline includes "print symbol S_{k}" or "erase" (cf footnote 12 in Post (1947), Undecidable p. 300). The abbreviations are Turing's (Undecidable p. 119). Subsequent to Turing's original paper in 1936–1937, machinemodels have allowed all nine possible types of fivetuples:
Current mconfiguration (Turing state)  Tape symbol  Printoperation  Tapemotion  Final mconfiguration (Turing state)  5tuple  5tuple comments  4tuple  

N1  q_{i}  S_{j}  Print(S_{k})  Left L  q_{m}  (q_{i}, S_{j}, S_{k}, L, q_{m})  "blank" = S_{0}, 1=S_{1}, etc.  
N2  q_{i}  S_{j}  Print(S_{k})  Right R  q_{m}  (q_{i}, S_{j}, S_{k}, R, q_{m})  "blank" = S_{0}, 1=S_{1}, etc.  
N3  q_{i}  S_{j}  Print(S_{k})  None N  q_{m}  (q_{i}, S_{j}, S_{k}, N, q_{m})  "blank" = S_{0}, 1=S_{1}, etc.  (q_{i}, S_{j}, S_{k}, q_{m}) 
4  q_{i}  S_{j}  None N  Left L  q_{m}  (q_{i}, S_{j}, N, L, q_{m})  (q_{i}, S_{j}, L, q_{m})  
5  q_{i}  S_{j}  None N  Right R  q_{m}  (q_{i}, S_{j}, N, R, q_{m})  (q_{i}, S_{j}, R, q_{m})  
6  q_{i}  S_{j}  None N  None N  q_{m}  (q_{i}, S_{j}, N, N, q_{m})  Direct "jump"  (q_{i}, S_{j}, N, q_{m}) 
7  q_{i}  S_{j}  Erase  Left L  q_{m}  (q_{i}, S_{j}, E, L, q_{m})  
8  q_{i}  S_{j}  Erase  Right R  q_{m}  (q_{i}, S_{j}, E, R, q_{m})  
9  q_{i}  S_{j}  Erase  None N  q_{m}  (q_{i}, S_{j}, E, N, q_{m})  (q_{i}, S_{j}, E, q_{m}) 
Any Turing table (list of instructions) can be constructed from the above nine 5tuples. For technical reasons, the three nonprinting or "N" instructions (4, 5, 6) can usually be dispensed with. For examples see Turing machine examples
Turing machine examples
Turing's very first example:The following table is Turing's very first example :With regard to what actions the machine actually does, Turing states the following:...
.
Less frequently the use of 4tuples are encountered: these represent a further atomization of the Turing instructions (cf Post (1947), Boolos & Jeffrey (1974, 1999), DavisSigalWeyuker (1994)); also see more at Post–Turing machine.
The "state"
The word "state" used in context of Turing machines can be a source of confusion, as it can mean two things. Most commentators after Turing have used "state" to mean the name/designator of the current instruction to be performed—i.e. the contents of the state register. But Turing (1936) made a strong distinction between a record of what he called the machine's "mconfiguration", (its internal state) and the machine's (or person's) "state of progress" through the computation  the current state of the total system. What Turing called "the state formula" includes both the current instruction and all the symbols on the tape:Earlier in his paper Turing carried this even further: he gives an example where he places a symbol of the current "mconfiguration"—the instruction's label—beneath the scanned square, together with all the symbols on the tape (Undecidable, p. 121); this he calls "the complete configuration" (Undecidable, p. 118). To print the "complete configuration" on one line he places the statelabel/mconfiguration to the left of the scanned symbol.
A variant of this is seen in Kleene (1952) where Kleene shows how to write the Gödel number
Gödel number
In mathematical logic, a Gödel numbering is a function that assigns to each symbol and wellformed formula of some formal language a unique natural number, called its Gödel number. The concept was famously used by Kurt Gödel for the proof of his incompleteness theorems...
of a machine's "situation": he places the "mconfiguration" symbol q_{4} over the scanned square in roughly the center of the 6 nonblank squares on the tape (see the Turingtape figure in this article) and puts it to the right of the scanned square. But Kleene refers to "q_{4}" itself as "the machine state" (Kleene, p. 374375). Hopcroft and Ullman call this composite the "instantaneous description" and follow the Turing convention of putting the "current state" (instructionlabel, mconfiguration) to the left of the scanned symbol (p. 149).
Example: total state of 3state 2symbol busy beaver after 3 "moves" (taken from example "run" in the figure below):

 1A1
This means: after three moves the tape has ... 000110000 ... on it, the head is scanning the rightmost 1, and the state is A. Blanks (in this case represented by "0"s) can be part of the total state as shown here: B01 ; the tape has a single 1 on it, but the head is scanning the 0 ("blank") to its left and the state is B.
"State" in the context of Turing machines should be clarified as to which is being described: (i) the current instruction, or (ii) the list of symbols on the tape together with the current instruction, or (iii) the list of symbols on the tape together with the current instruction placed to the left of the scanned symbol or to the right of the scanned symbol.
Turing's biographer Andrew Hodges (1983: 107) has noted and discussed this confusion.
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 
To the right: the above TABLE as expressed as a "state transition" diagram.
Usually large TABLES are better left as tables (Booth, p. 74). They are more readily simulated by computer in tabular form (Booth, p. 74). However, certain concepts—e.g. machines with "reset" states and machines with repeating patterns (cf Hill and Peterson p. 244ff)—can be more readily seen when viewed as a drawing.
Whether a drawing represents an improvement on its TABLE must be decided by the reader for the particular context. See Finite state machine
Finite state machine
A finitestate machine or finitestate automaton , or simply a state machine, is a mathematical model used to design computer programs and digital logic circuits. It is conceived as an abstract machine that can be in one of a finite number of states...
for more.
The reader should again be cautioned that such diagrams represent a snapshot of their TABLE frozen in time, not the course ("trajectory") of a computation through time and/or space. While every time the busy beaver machine "runs" it will always follow the same statetrajectory, this is not true for the "copy" machine that can be provided with variable input "parameters".
The diagram "Progress of the computation" shows the 3state busy beaver's "state" (instruction) progress through its computation from start to finish. On the far right is the Turing "complete configuration" (Kleene "situation", Hopcroft–Ullman "instantaneous description") at each step. If the machine were to be stopped and cleared to blank both the "state register" and entire tape, these "configurations" could be used to rekindle a computation anywhere in its progress (cf Turing (1936) Undecidable pp. 139–140).
Models equivalent to the Turing machine model
Many machines that might be thought to have more computational capability than a simple universal Turing machine can be shown to have no more power (Hopcroft and Ullman p. 159, cf Minsky (1967)). They might compute faster, perhaps, or use less memory, or their instruction set might be smaller, but they cannot compute more powerfully (i.e. more mathematical functions). (Recall that the Church–Turing thesisChurch–Turing thesis
In computability theory, the Church–Turing thesis is a combined hypothesis about the nature of functions whose values are effectively calculable; in more modern terms, algorithmically computable...
hypothesizes this to be true for any kind of machine: that anything that can be "computed" can be computed by some Turing machine.)
A Turing machine is equivalent to a pushdown automaton
Pushdown automaton
In automata theory, a pushdown automaton is a finite automaton that can make use of a stack containing data. Operation :Pushdown automata differ from finite state machines in two ways:...
that has been made more flexible and concise by relaxing the lastinfirstout requirement of its stack.
At the other extreme, some very simple models turn out to be Turingequivalent
Turing completeness
In computability theory, a system of datamanipulation rules is said to be Turing complete or computationally universal if and only if it can be used to simulate any singletaped Turing machine and thus in principle any computer. A classic example is the lambda calculus...
, i.e. to have the same computational power as the Turing machine model.
Common equivalent models are the multitape Turing machine, multitrack Turing machine
Multitrack Turing machine
A Multitrack Turing machine is a specific type of Multitape Turing machine. In a standard ntape Turing machine, n heads move independently along n tracks. In a ntrack Turing machine, one head reads and writes on all tracks simultaneously. A tape position in a ntrack Turing Machine contains n...
, machines with input and output, and the nondeterministic Turing machine
Nondeterministic Turing machine
In theoretical computer science, a Turing machine is a theoretical machine that is used in thought experiments to examine the abilities and limitations of computers....
(NDTM) as opposed to the deterministic Turing machine (DTM) for which the action table has at most one entry for each combination of symbol and state.
Readonly, rightmoving Turing Machines
Read only right moving Turing Machines
Readonly right moving Turing Machines are a particular type of Turing Machine. Definition :The definition based on a single infinite tape defined to be a 7tupleM= \langle Q, \Gamma, b, \Sigma, \delta, q_0, F \rangle where...
are equivalent to NDFA's
Nondeterministic finite state machine
In the automata theory, a nondeterministic finite state machine or nondeterministic finite automaton is a finite state machine where from each state and a given input symbol the automaton may jump into several possible next states...
(as well as DFA's
Deterministic finite state machine
In the theory of computation and automata theory, a deterministic finite state machine—also known as deterministic finite automaton —is a finite state machine accepting finite strings of symbols. For each state, there is a transition arrow leading out to a next state for each symbol...
by conversion using the NDFA to DFA conversion algorithm).
For practical and didactical intentions the equivalent register machine
Register machine
In mathematical logic and theoretical computer science a register machine is a generic class of abstract machines used in a manner similar to a Turing machine...
can be used as a usual assembly
Assembly language
An assembly language is a lowlevel programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
.
Choice cmachines, Oracle omachines
Early in his paper (1936) Turing makes a distinction between an "automatic machine"—its "motion ... completely determined by the configuration" and a "choice machine":Turing (1936) does not elaborate further except in a footnote in which he describes how to use an amachine to "find all the provable formulae of the [Hilbert] calculus" rather than use a choice machine. He "suppose[s] that the choices are always between two possibilities 0 and 1. Each proof will then be determined by a sequence of choices i_{1}, i_{2}, ..., i_{n} (i_{1} = 0 or 1, i_{2} = 0 or 1, ..., i_{n} = 0 or 1), and hence the number 2^{n} + i_{1}2^{n1} + i_{2}2^{n2} + ... +i_{n} completely determines the proof. The automatic machine carries out successively proof 1, proof 2, proof 3, ..." (Footnote ‡, Undecidable, p. 138)
This is indeed the technique by which a deterministic (i.e. a) Turing machine can be used to mimic the action of a nondeterministic Turing machine; Turing solved the matter in a footnote and appears to dismiss it from further consideration.
An oracle machine
Oracle machine
In complexity theory and computability theory, an oracle machine is an abstract machine used to study decision problems. It can be visualized as a Turing machine with a black box, called an oracle, which is able to decide certain decision problems in a single operation. The problem can be of any...
or omachine is a Turing amachine that pauses its computation at state "o" while, to complete its calculation, it "awaits the decision" of "the oracle"—an unspecified entity "apart from saying that it cannot be a machine" (Turing (1939), Undecidable p. 166–168). The concept is now actively used by mathematicians.
Universal Turing machines
As Turing wrote in Undecidable, p. 128 (italics added):This finding is now taken for granted, but at the time (1936) it was considered astonishing. The model of computation that Turing called his "universal machine"—"U" for short—is considered by some (cf Davis (2000)) to have been the fundamental theoretical breakthrough that led to the notion of the Storedprogram computer
Storedprogram computer
A storedprogram computer is one which 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....
.
In terms of computational complexity
Computational Complexity
Computational Complexity may refer to:*Computational complexity theory*Computational Complexity...
, a multitape universal Turing machine need only be slower by logarithm
Logarithm
The logarithm of a number is the exponent by which another fixed value, the base, has to be raised to produce that number. For example, the logarithm of 1000 to base 10 is 3, because 1000 is 10 to the power 3: More generally, if x = by, then y is the logarithm of x to base b, and is written...
ic factor compared to the machines it simulates. This result was obtained in 1966 by F. C. Hennie and R. E. Stearns. (Arora and Barak, 2009, theorem 1.9)
Comparison with real machines
It is often said that Turing machines, unlike simpler automata, are as powerful as real machines, and are able to execute any operation that a real program can. What is missed in this statement is that, because a real machine can only be in finitely many configurations, in fact this "real machine" is nothing but a linear bounded automatonLinear bounded automaton
In computer science, a linear bounded automaton is a restricted form of nondeterministic Turing machine.Operation:Linear bounded automata satisfy the following three conditions:...
. On the other hand, Turing machines are equivalent to machines that have an unlimited amount of storage space for their computations. In fact, Turing machines are not intended to model computers, but rather they are intended to model computation itself; historically, computers, which compute only on their (fixed) internal storage, were developed only later.
There are a number of ways to explain why Turing machines are useful models of real computers:
 Anything a real computer can compute, a Turing machine can also compute. For example: "A Turing machine can simulate any type of subroutine found in programming languages, including recursive procedures and any of the known parameterpassing mechanisms" (Hopcroft and Ullman p. 157). A large enough FSA can also model any real computer, disregarding IO. Thus, a statement about the limitations of Turing machines will also apply to real computers.
 The difference lies only with the ability of a Turing machine to manipulate an unbounded amount of data. However, given a finite amount of time, a Turing machine (like a real machine) can only manipulate a finite amount of data.
 Like a Turing machine, a real machine can have its storage space enlarged as needed, by acquiring more disks or other storage media. If the supply of these runs short, the Turing machine may become less useful as a model. But the fact is that neither Turing machines nor real machines need astronomical amounts of storage space in order to perform useful computation. The processing time required is usually much more of a problem.
 Descriptions of real machine programs using simpler abstract models are often much more complex than descriptions using Turing machines. For example, a Turing machine describing an algorithm may have a few hundred states, while the equivalent deterministic finite automaton on a given real machine has quadrillions. This makes the DFA representation infeasible to analyze.
 Turing machines describe algorithms independent of how much memory they use. There is a limit to the memory possessed by any current machine, but this limit can rise arbitrarily in time. Turing machines allow us to make statements about algorithms which will (theoretically) hold forever, regardless of advances in conventional computing machine architecture.
 Turing machines simplify the statement of algorithms. Algorithms running on Turingequivalent abstract machines are usually more general than their counterparts running on real machines, because they have arbitraryprecision data types available and never have to deal with unexpected conditions (including, but not limited to, running out of memory).
One way in which Turing machines are a poor model for programs is that many real programs, such as operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s and word processor
Word processor
A word processor is a computer application used for the production of any sort of printable material....
s, are written to receive unbounded input over time, and therefore do not halt. Turing machines do not model such ongoing computation well (but can still model portions of it, such as individual procedures).
Computational Complexity Theory
A limitation of Turing Machines is that they do not model the strengths of a particular arrangement well. For instance, modern storedprogram computers are actually instances of a more specific form of abstract machineAbstract machine
An abstract machine, also called an abstract computer, is a theoretical model of a computer hardware or software system used in automata theory...
known as the random access stored program machine
Random access stored program machine
In theoretical computer science the Random Access Stored Program machine model is an abstract machine used for the purposes of algorithm development and algorithm complexity theory....
or RASP machine model. Like the Universal Turing machine
Universal Turing machine
In computer science, a universal Turing machine 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...
the RASP stores its "program" in "memory" external to its finitestate machine's "instructions". Unlike the Universal Turing Machine, the RASP has an infinite number of distinguishable, numbered but unbounded "registers"—memory "cells" that can contain any integer (cf. Elgot and Robinson (1964), Hartmanis (1971), and in particular CookRechow (1973); references at random access machine
Random access machine
In computer science, random access machine is an abstract machine in the general class of register machines. The RAM is very similar to the counter machine but with the added capability of 'indirect addressing' of its registers...
). The RASP's finitestate machine is equipped with the capability for indirect addressing (e.g. the contents of one register can be used as an address to specify another register); thus the RASP's "program" can address any register in the registersequence. The upshot of this distinction is that there are computational optimizations that can be performed based on the memory indices, which are not possible in a general Turing Machine; thus when Turing Machines are used as the basis for bounding running times, a 'false lower bound' can be proven on certain algorithms' running times (due to the false simplifying assumption of a Turing Machine). An example of this is binary search, an algorithm that can be shown to perform more quickly when using the RASP model of computation rather than the Turing machine model.
Concurrency
Another limitation of Turing machines is that they do not model concurrency well. For example, there is a bound on the size of integer that can be computed by an alwayshalting nondeterministic Turing Machine starting on a blank tape. (See article on Unbounded nondeterminismUnbounded nondeterminism
In computer science, unbounded nondeterminism or unbounded indeterminacy is a property of concurrency by which the amount of delay in servicing a request can become unbounded as a result of arbitration of contention for shared resources while still guaranteeing that the request will eventually be...
.) By contrast, there are alwayshalting concurrent systems with no inputs that can compute an integer of unbounded size. (A process can be created with local storage that is initialized with a count of 0 that concurrently sends itself both a stop and a go message. When it receives a go message, it increments its count by 1 and sends itself a go message. When it receives a stop message, it stops with an unbounded number in its local storage.)
History
They were described in 1936 by Alan TuringAlan Turing
Alan Mathison Turing, OBE, FRS , was an English mathematician, logician, cryptanalyst, and computer scientist. He was highly influential in the development of computer science, providing a formalisation of the concepts of "algorithm" and "computation" with the Turing machine, which played a...
.
Historical background: computational machinery
Robin GandyRobin Gandy
Robin Oliver Gandy was a British mathematician and logician.He was a friend, student, and associate of Alan Turing, having been supervised by Turing during his PhD at the University of Cambridge , where they worked together.Educated at Abbotsholme, Robin Gandy took two years of the Mathematical...
(1919–1995)—a student of Alan Turing
Alan Turing
Alan Mathison Turing, OBE, FRS , was an English mathematician, logician, cryptanalyst, and computer scientist. He was highly influential in the development of computer science, providing a formalisation of the concepts of "algorithm" and "computation" with the Turing machine, which played a...
(1912–1954) and his lifelong friend—traces the lineage of the notion of "calculating machine" back to Babbage (circa 1834) and actually proposes "Babbage's Thesis":
Gandy's analysis of Babbage's Analytical Engine
Analytical engine
The Analytical Engine was a proposed mechanical generalpurpose computer designed by English mathematician Charles Babbage. It was first described in 1837 as the successor to Babbage's difference engine, a design for a mechanical calculator...
describes the following five operations (cf p. 52–53):
 The arithmetic functions +, −, × where − indicates "proper" subtraction x − y = 0 if y ≥ x
 Any sequence of operations is an operation
 Iteration of an operation (repeating n times an operation P)
 Conditional iteration (repeating n times an operation P conditional on the "success" of test T)
 Conditional transfer (i.e. conditional "gotoGotogoto is a statement found in many computer programming languages. It is a combination of the English words go and to. It performs a oneway transfer of control to another line of code; in contrast a function call normally returns control...
")
Gandy states that "the functions which can be calculated by (1), (2), and (4) are precisely those which are Turing computable." (p. 53). He cites other proposals for "universal calculating machines" included those of Percy Ludgate
Percy Ludgate
Percy Edwin Ludgate was an accountant in Dublin and designer of an Analytical Engine.Working alone, Ludgate designed an Analytical Engine while unaware of Charles Babbage's designs, although he later went on to write about Babbage's machine...
(1909), Leonardo Torres y Quevedo
Leonardo Torres y Quevedo
Leonardo Torres y Quevedo was a Spanish civil engineer and mathematician of the late nineteenth and early twentieth centuries. Biography :Torres was born on 28 December 1852, on the Feast of the Holy Innocents, in Santa Cruz de Iguña, Molledo , Spain...
(1914), Maurice d'Ocagne (1922), Louis Couffignal
Louis Couffignal
Louis Couffignal was a French Mathematician and Cybernetics pioneer. He taught in schools in the southwest of Brittany, then at the naval academy and, eventually, at the Buffon School. Biography :...
(1933), Vannevar Bush
Vannevar Bush
Vannevar Bush was an American engineer and science administrator known for his work on analog computing, his political role in the development of the atomic bomb as a primary organizer of the Manhattan Project, the founding of Raytheon, and the idea of the memex, an adjustable microfilm viewer...
(1936), Howard Aiken
Howard Aiken
Howard Hathaway Aiken was a pioneer in computing, being the original conceptual designer behind IBM's Harvard Mark I computer....
(1937). However:
The Entscheidungsproblem (the "decision problem"): Hilbert's tenth question of 1900
With regards to Hilbert's problemsHilbert's problems
Hilbert's problems form a list of twentythree problems in mathematics published by German mathematician David Hilbert in 1900. The problems were all unsolved at the time, and several of them were very influential for 20th century mathematics...
posed by the famous mathematician David Hilbert
David Hilbert
David Hilbert was a German mathematician. He is recognized as one of the most influential and universal mathematicians of the 19th and early 20th centuries. Hilbert discovered and developed a broad range of fundamental ideas in many areas, including invariant theory and the axiomatization of...
in 1900, an aspect of problem #10 had been floating about for almost 30 years before it was framed precisely. Hilbert's original expression for #10 is as follows:
By 1922, this notion of "Entscheidungsproblem
Entscheidungsproblem
In mathematics, the is a challenge posed by David Hilbert in 1928. The asks for an algorithm that will take as input a description of a formal language and a mathematical statement in the language and produce as output either "True" or "False" according to whether the statement is true or false...
" had developed a bit, and H. Behmann
Heinrich Behmann
Heinrich Behmann was a German mathematician. He performed research in the field of set theory and predicate logic....
stated that
By the 1928 international congress of mathematicians Hilbert "made his questions quite precise. First, was mathematics complete ... Second, was mathematics consistent
Consistency proof
In logic, a consistent theory is one that does not contain a contradiction. The lack of contradiction can be defined in either semantic or syntactic terms. The semantic definition states that a theory is consistent if and only if it has a model, i.e. there exists an interpretation under which all...
... And thirdly, was mathematics decidable
Decidability (logic)
In logic, the term decidable refers to the decision problem, the question of the existence of an effective method for determining membership in a set of formulas. Logical systems such as propositional logic are decidable if membership in their set of logically valid formulas can be effectively...
?" (Hodges p. 91, Hawking p. 1121). The first two questions were answered in 1930 by Kurt Gödel
Kurt Gödel
Kurt Friedrich Gödel was an Austrian logician, mathematician and philosopher. Later in his life he emigrated to the United States to escape the effects of World War II. One of the most significant logicians of all time, Gödel made an immense impact upon scientific and philosophical thinking in the...
at the very same meeting where Hilbert delivered his retirement speech (much to the chagrin of Hilbert); the third—the Entscheidungsproblem—had to wait until the mid1930s.
The problem was that an answer first required a precise definition of "definite general applicable prescription", which Princeton professor Alonzo Church
Alonzo Church
Alonzo Church was an American mathematician and logician who made major contributions to mathematical logic and the foundations of theoretical computer science. He is best known for the lambda calculus, Church–Turing thesis, Frege–Church ontology, and the Church–Rosser theorem.Life:Alonzo Church...
would come to call "effective calculability", and in 1928 no such definition existed. But over the next 6–7 years Emil Post developed his definition of a worker moving from room to room writing and erasing marks per a list of instructions (Post 1936), as did Church and his two students Stephen Kleene and J. B. Rosser by use of Church's lambdacalculus and Gödel's recursion theory
Recursion theory
Computability theory, also called recursion theory, is a branch of mathematical logic that originated in the 1930s with the study of computable functions and Turing degrees. The field has grown to include the study of generalized computability and definability...
(1934). Church's paper (published 15 April 1936) showed that the Entscheidungsproblem was indeed "undecidable" and beat Turing to the punch by almost a year (Turing's paper submitted 28 May 1936, published January 1937). In the meantime, Emil Post submitted a brief paper in the fall of 1936, so Turing at least had priority over Post. While Church refereed Turing's paper, Turing had time to study Church's paper and add an Appendix where he sketched a proof that Church's lambdacalculus and his machines would compute the same functions.
And Post had only proposed a definition of calculability
Church–Turing thesis
In computability theory, the Church–Turing thesis is a combined hypothesis about the nature of functions whose values are effectively calculable; in more modern terms, algorithmically computable...
and criticized Church's "definition", but had proved nothing.
Alan Turing's a (automatic)machine
In the spring of 1935 Turing as a young Master's student at King's College Cambridge, UK, took on the challenge; he had been stimulated by the lectures of the logician M. H. A. Newman "and learned from them of Gödel's work and the Entscheidungsproblem ... Newman used the word 'mechanical' ... In his obituary of Turing 1955 Newman writes:Gandy states that:
While Gandy believed that Newman's statement above is "misleading", this opinion is not shared by all. Turing had a lifelong interest in machines: "Alan had dreamt of inventing typewriters as a boy; [his mother] Mrs. Turing had a typewriter; and he could well have begun by asking himself what was meant by calling a typewriter 'mechanical'" (Hodges p. 96). While at Princeton pursuing his PhD, Turing built a Booleanlogic multiplier (see below). His PhD thesis, titled "Systems of Logic Based on Ordinals", contains the following definition of "a computable function":
When Turing returned to the UK he ultimately became jointly responsible for breaking the German secret codes created by encryption machines called "The Enigma"; he also became involved in the design of the ACE (Automatic Computing Engine), "[Turing's] ACE proposal was effectively selfcontained, and its roots lay not in the EDVAC
EDVAC
EDVAC was one of the earliest electronic computers. Unlike its predecessor the ENIAC, it was binary rather than decimal, and was a stored program computer....
[the USA's initiative], but in his own universal machine" (Hodges p. 318). Arguments still continue concerning the origin and nature of what has been named by Kleene (1952) Turing's Thesis. But what Turing did prove with his computationalmachine model appears in his paper On Computable Numbers, With an Application to the Entscheidungsproblem (1937):
Turing's example (his second proof): If one is to ask for a general procedure to tell us: "Does this machine ever print 0", the question is "undecidable".
1937–1970: The "digital computer", the birth of "computer science"
In 1937, while at Princeton working on his PhD thesis, Turing built a digital (Booleanlogic) multiplier from scratch, making his own electromechanical relays (Hodges p. 138). "Alan's task was to embody the logical design of a Turing machine in a network of relayoperated switches ..." (Hodges p. 138). While Turing might have been just curious and experimenting, quiteearnest work in the same direction was going in Germany (Konrad ZuseKonrad Zuse
Konrad Zuse was a German civil engineer and computer pioneer. His greatest achievement was the world's first functional programcontrolled Turingcomplete computer, the Z3, which became operational in May 1941....
(1938)), and in the United States (Howard Aiken
Howard Aiken
Howard Hathaway Aiken was a pioneer in computing, being the original conceptual designer behind IBM's Harvard Mark I computer....
) and George Stibitz
George Stibitz
George Robert Stibitz is internationally recognized as one of the fathers of the modern digital computer...
(1937); the fruits of their labors were used by the Axis and Allied military in World War II
World War II
World War II, or the Second World War , was a global conflict lasting from 1939 to 1945, involving most of the world's nations—including all of the great powers—eventually forming two opposing military alliances: the Allies and the Axis...
(cf Hodges p. 298–299). In the early to mid1950s Hao Wang and Marvin Minsky
Marvin Minsky
Marvin Lee Minsky is an American cognitive scientist in the field of artificial intelligence , cofounder of Massachusetts Institute of Technology's AI laboratory, and author of several texts on AI and philosophy.Biography:...
reduced the Turing machine to a simpler form (a precursor to the PostTuring machine
PostTuring machine
A Post–Turing machine is a "program formulation" of an especially simple type of Turing machine, comprising a variant of Emil Post's Turingequivalent model of computation described below. A Post–Turing machine is a "program formulation" of an especially simple type of Turing machine, comprising a...
of Martin Davis
Martin Davis
Martin David Davis, is an American mathematician, known for his work on Hilbert's tenth problem . He received his Ph.D. from Princeton University in 1950, where his adviser was Alonzo Church . He is Professor Emeritus at New York University. He is the coinventor of the DavisPutnam and the DPLL...
); simultaneously European researchers were reducing the newfangled electronic computer to a computerlike theoretical object equivalent to what was now being called a "Turing machine". In the late 1950s and early 1960s, the coincidentallyparallel developments of Melzak and Lambek (1961), Minsky (1961), and Shepherdson and Sturgis (1961) carried the European work further and reduced the Turing machine to a more friendly, computerlike abstract model called the counter machine
Counter machine
A counter machine is an abstract machine used in formal logic and theoretical computer science to model computation. It is the most primitive of the four types of register machines...
; Elgot and Robinson (1964), Hartmanis (1971), Cook and Reckhow (1973) carried this work even further with the register machine
Register machine
In mathematical logic and theoretical computer science a register machine is a generic class of abstract machines used in a manner similar to a Turing machine...
and random access machine
Random access machine
In computer science, random access machine is an abstract machine in the general class of register machines. The RAM is very similar to the counter machine but with the added capability of 'indirect addressing' of its registers...
models—but basically all are just multitape Turing machines with an arithmeticlike instruction set.
1970–present: the Turing machine as a model of computation
Today the counter, register and randomaccess machines and their sire the Turing machine continue to be the models of choice for theorists investigating questions in the theory of computationTheory of computation
In theoretical computer science, the theory of computation is the branch that deals with whether and how efficiently problems can be solved on a model of computation, using an algorithm...
. In particular, computational complexity theory
Computational complexity theory
Computational complexity theory is a branch of the theory of computation in theoretical computer science and mathematics that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other...
makes use of the Turing machine:
Kantorovitz (2005), was the first to show the most simple obvious representation of Turing Machines published academically which unifies Turing Machines with mathematical analysis and analog computers.
See also
 AlgorithmAlgorithmIn mathematics and computer science, an algorithm is an effective method expressed as a finite list of welldefined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning...
, for a brief history of some of the inventions and the mathematics leading to Turing's definition of what he called his "amachine"  Arithmetical hierarchyArithmetical hierarchyIn mathematical logic, the arithmetical hierarchy, arithmetic hierarchy or KleeneMostowski hierarchy classifies certain sets based on the complexity of formulas that define them...
 Bekenstein boundBekenstein boundIn physics, the Bekenstein bound is an upper limit on the entropy S, or information I, that can be contained within a given finite region of space which has a finite amount of energy—or conversely, the maximum amount of information required to perfectly describe a given physical system down to the...
; Because they have an infinite tape, Turing machines are physically impossible if they are to have a finite size and bounded energy.  BlooP and FlooP
 Busy beaverBusy beaverIn computability theory, a busy beaver is a Turing machine that attains the maximum "operational busyness" among all the Turing machines in a certain class...
 Chaitin constant or Omega (computer science) for information relating to the halting problem
 ChurchTuring thesis, which says Turing machines can perform any computation that can be performed
 Conway's Game of LifeConway's Game of LifeThe Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970....
, a Turingcomplete cellular automaton  GenetixGenetixGenetix is a virtual machine created by Bernard Hodson containing only 34 executable instructions. It was inspired by the principles of Alan Turing and allows for an entire operating system, including a word processor and utilities, to run on 32 kilobytes....
a virtual machine created by Bernard Hodson containing only 34 executable instructions.  Gödel, Escher, Bach: An Eternal Golden Braid, an influential book largely about the ChurchTuring Thesis.
 Halting problemHalting problemIn computability theory, the halting problem can be stated as follows: Given a description of a computer program, decide whether the program finishes running or continues to run forever...
, for more references  Harvard architectureHarvard architectureThe 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 relaybased computer, which stored instructions on punched tape and data in electromechanical counters...
 Hyperbrain a theoretical model of the brain
 Langton's antLangton's antLangton's ant is a twodimensional Turing machine with a very simple set of rules but complicated emergent behavior. It was invented by Chris Langton in 1986 and runs on a square lattice of black and white cells. The universality of Langton's ant was proven in 2000...
and TurmiteTurmiteIn computer science, a turmite is a Turing machine which has an orientation as well as a current state and a "tape" that consists of an infinite twodimensional grid of cells. The terms ant and vant are also used. Langton's ant is a wellknown type of turmite defined on the cells of a square grid...
s, simple twodimensional analogues of the Turing machine.  Modified Harvard architectureModified Harvard architectureThe Modified Harvard Architecture is a variation of the Harvard computer architecture that allows the contents of the instruction memory to be accessed as if it were data...
 Probabilistic Turing machineProbabilistic Turing machineIn computability theory, a probabilistic Turing machine is a nondeterministic Turing machine which randomly chooses between the available transitions at each point according to some probability distribution....
 Quantum Turing machineQuantum Turing machineA quantum Turing machine , also a universal quantum computer, is an abstract machine used to model the effect of a quantum computer. It provides a very simple model which captures all of the power of quantum computation. Any quantum algorithm can be expressed formally as a particular quantum...
 Turing completenessTuring completenessIn computability theory, a system of datamanipulation rules is said to be Turing complete or computationally universal if and only if it can be used to simulate any singletaped Turing machine and thus in principle any computer. A classic example is the lambda calculus...
, an attribute used in computability theory to describe computing systems with power equivalent to a universal Turing machine.  Turing switchTuring switchThe Turing switch is a logical construction similar to the Turing machine. The Turing switch models the operation of a basic network switch in a network of switches, much the same as a Turing machine models the operation of a basic computational entity. Both are named in honor of the English...
 Turing tarpitTuring tarpitA Turing tarpit is any programming language or computer interface that allows for a great deal of flexibility in function but is difficult to learn and use because it offers little or no support for common tasks...
, any computing system or language which, despite being Turing complete, is generally considered useless for practical computing.  Von Neumann architectureVon Neumann architectureThe term Von Neumann architecture, aka the Von Neumann model, derives from a computer architecture proposal by the mathematician and early computer scientist John von Neumann and others, dated June 30, 1945, entitled First Draft of a Report on the EDVAC...
Primary literature, reprints, and compilations
 B. Jack CopelandJack CopelandBrian Jack Copeland is Professor of Philosophy at the University of Canterbury, Christchurch, New Zealand.Copeland received a BPhil and DPhil from the University of Oxford in philosophy, where he undertook research on modal and nonclassical logic.He is the Director of the Turing Archive for the...
ed. (2004), The Essential Turing: Seminal Writings in Computing, Logic, Philosophy, Artificial Intelligence, and Artificial Life plus The Secrets of Enigma, Clarendon Press (Oxford University Press), Oxford UK, ISBN 0198250797. Contains the Turing papers plus a draft letter to Emil Post re his criticism of "Turing's convention", and Donald W. Davies' Corrections to Turing's Universal Computing Machine  Martin DavisMartin DavisMartin David Davis, is an American mathematician, known for his work on Hilbert's tenth problem . He received his Ph.D. from Princeton University in 1950, where his adviser was Alonzo Church . He is Professor Emeritus at New York University. He is the coinventor of the DavisPutnam and the DPLL...
(ed.) (1965), The Undecidable, Raven Press, Hewlett, NY.  Emil Post (1936), "Finite Combinatory Processes—Formulation 1", Journal of Symbolic Logic, 1, 103–105, 1936. Reprinted in The Undecidable pp. 289ff.
 Emil Post (1947), "Recursive Unsolvability of a Problem of Thue", Journal of Symbolic Logic, vol. 12, pp. 1–11. Reprinted in The Undecidable pp. 293ff. In the Appendix of this paper Post comments on and gives corrections to Turing's paper of 1936–1937. In particular see the footnotes 11 with corrections to the universal computing machine coding and footnote 14 with comments on Turing's first and second proofsTuring's proofFirst published in January 1937 with the title On Computable Numbers, With an Application to the Entscheidungsproblem, Turing's proof was the second proof of the assertion that some decision problems are "undecidable": there is no single algorithm that infallibly gives a correct YES or NO answer...
. (and ). Reprinted in many collections, e.g. in The Undecidable pp. 115–154; available on the web in many places, e.g. at Scribd.  Alan Turing, 1948, "Intelligent Machinery." Reprinted in "Cybernetics: Key Papers." Ed. C.R. Evans and A.D.J. Robertson. Baltimore: University Park Press, 1968. p. 31.
 F. C. Hennie and R. E. Stearns. Twotape simulation of multitape Turing machines. JACM, 13(4):533–546, 1966.
Computability theory
Some parts have been significantly rewritten by Burgess. Presentation of Turing machines in context of Lambek "abacus machines" (cf Register machineRegister machine
In mathematical logic and theoretical computer science a register machine is a generic class of abstract machines used in a manner similar to a Turing machine...
) and recursive functions
Computable function
Computable functions are the basic objects of study in computability theory. Computable functions are the formalized analogue of the intuitive notion of algorithm. They are used to discuss computability without referring to any concrete model of computation such as Turing machines or register...
, showing their equivalence.
 Taylor L. Booth (1967), Sequential Machines and Automata Theory, John Wiley and Sons, Inc., New York. Graduate level engineering text; ranges over a wide variety of topics, Chapter IX Turing Machines includes some recursion theory.. On pages 12–20 he gives examples of 5tuple tables for Addition, The Successor Function, Subtraction (x ≥ y), Proper Subtraction (0 if x < y), The Identity Function and various identity functions, and Multiplication.. On pages 90–103 Hennie discusses the UTM with examples and flowcharts, but no actual 'code'. A difficult book. Centered around the issues of machineinterpretation of "languages", NPcompleteness, etc. Distinctly different and less intimidating than the first edition.
 Stephen Kleene (1952), Introduction to Metamathematics, North–Holland Publishing Company, Amsterdam Netherlands, 10th impression (with corrections of 6th reprint 1971). Graduate level text; most of Chapter XIII Computable functions is on Turing machine proofs of computability of recursive functions, etc.. With reference to the role of Turing machines in the development of computation (both hardware and software) see 1.4.5 History and Bibliography pp. 225ff and 2.6 History and Bibliographypp. 456ff.
 Zohar MannaZohar MannaZohar Manna is a professor of computer science at Stanford University. He is the author of The Mathematical Theory of Computation , one of the first texts to provide extensive coverage of the mathematical concepts behind computer programming.With Amir Pnueli, he coauthored an unfinished trilogy...
, 1974, Mathematical Theory of Computation. Reprinted, Dover, 2003. ISBN 9780486432380  Marvin MinskyMarvin MinskyMarvin Lee Minsky is an American cognitive scientist in the field of artificial intelligence , cofounder of Massachusetts Institute of Technology's AI laboratory, and author of several texts on AI and philosophy.Biography:...
, Computation: Finite and Infinite Machines, Prentice–Hall, Inc., N.J., 1967. See Chapter 8, Section 8.2 "Unsolvability of the Halting Problem." Excellent, i.e. relatively readable, sometimes funny. Chapter 2: Turing machines, pp. 19–56. Chapter 3: The Church–Turing Thesis, pp. 125–149.  Peter van Emde Boas 1990, Machine Models and Simulations, pp. 3–66, in Jan van LeeuwenJan van LeeuwenJan van Leeuwen is a Dutch computer scientist, a professor at the Department of Information and Computing Sciences at the Utrecht University....
, ed., Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity, The MIT Press/Elsevier, [place?], ISBN 0444880712 (Volume A). QA76.H279 1990. Valuable survey, with 141 references.
Small Turing machines
 Rogozhin, Yurii, 1998, "A Universal Turing Machine with 22 States and 2 Symbols", Romanian Journal Of Information Science and Technology, 1(3), 259–265, 1998. (surveys known results about small universal Turing machines)
 Stephen WolframStephen WolframStephen Wolfram is a British scientist and the chief designer of the Mathematica software application and the Wolfram Alpha computational knowledge engine. Biography :...
, 2002, A New Kind of Science, Wolfram Media, ISBN 1579550088  Brunfiel, Geoff, Student snags maths prize, Nature, October 24. 2007.
 Jim Giles (2007), Simplest 'universal computer' wins student $25,000, New Scientist, October 24, 2007.
 Alex Smith, Universality of Wolfram’s 2, 3 Turing Machine, Submission for the Wolfram 2, 3 Turing Machine Research Prize.
 Vaughan Pratt, 2007, "Simple Turing machines, Universality, Encodings, etc.", FOM email list. October 29, 2007.
 Martin Davis, 2007, "Smallest universal machine", and Definition of universal Turing machine FOM email list. October 26–27, 2007.
 Alasdair Urquhart, 2007 "Smallest universal machine", FOM email list. October 26, 2007.
 Hector Zenil (Wolfram Research), 2007 "smallest universal machine", FOM email list. October 29, 2007.
 Todd Rowland, 2007, "Confusion on FOM", Wolfram Science message board, October 30, 2007.
Other
 Robin GandyRobin GandyRobin Oliver Gandy was a British mathematician and logician.He was a friend, student, and associate of Alan Turing, having been supervised by Turing during his PhD at the University of Cambridge , where they worked together.Educated at Abbotsholme, Robin Gandy took two years of the Mathematical...
, "The Confluence of Ideas in 1936", pp. 51–102 in Rolf Herken, see below.  Stephen HawkingStephen HawkingStephen William Hawking, CH, CBE, FRS, FRSA is an English theoretical physicist and cosmologist, whose scientific books and public appearances have made him an academic celebrity...
(editor), 2005, God Created the Integers: The Mathematical Breakthroughs that Changed History, Running Press, Philadelphia, ISBN 9780762419227. Includes Turing's 1936–1937 paper, with brief commentary and biography of Turing as written by Hawking.  Andrew HodgesAndrew HodgesAndrew Hodges is a mathematician, an author and a pioneer of the gay liberation movement of the 1970s.For the past decades , Hodges has focused his research activities on the twistor theory — the new approach to the problems of fundamental physics pioneered by the mathematician Roger...
, Alan Turing: The Enigma, Simon and Schuster, New York. Cf Chapter "The Spirit of Truth" for a history leading to, and a discussion of, his proof.  Hao Wang, "A variant to Turing's theory of computing machines", Journal of the Association for Computing Machinery (JACM) 4, 63–92 (1957).
 Charles PetzoldCharles PetzoldCharles Petzold is an American programmer and technical author on Microsoft Windows applications. He is also a Microsoft Most Valuable Professional....
, Petzold, Charles, The Annotated Turing, John Wiley & Sons, Inc., ISBN 0470229055  Arora, Sanjeev; Barak, Boaz, "Complexity Theory: A Modern Approach", Cambridge University Press, 2009, ISBN 9780521424264, section 1.4, "Machines as strings and the universal Turing machine" and 1.7, "Proof of theorem 1.9"
 Isaiah Pinchas Kantorovitz, "A note on turing machine computability of rule driven systems", ACM SIGACT News December 2005.
External links
 Turing Machine on Stanford Encyclopedia of Philosophy
 Detailed info on the Church–Turing Hypothesis (Stanford Encyclopedia of Philosophy)
 Turing MachineLike Models in Molecular Biology, to understand life mechanisms with a DNAtape processor.
 The Turing machine—Summary about the Turing machine, its functionality and historical facts
 The Wolfram 2,3 Turing Machine Research Prize—Stephen Wolfram's $25,000 prize for the proof or disproof of the universality of the potentially smallest universal Turing Machine. The contest has ended, with the proof affirming the machine's universality.
 Turing Machine in Conway's Game of Life by Paul Rendell
 "Turing Machine Causal Networks" by Enrique Zeleny, Wolfram Demonstrations ProjectWolfram Demonstrations ProjectThe Wolfram Demonstrations Project is hosted by Wolfram Research, whose stated goal is to bring computational exploration to the widest possible audience. It consists of an organized, opensource collection of small interactive programs called Demonstrations, which are meant to visually and...
.  n bands Turing Machine Simulator
 Implementation of a Turing Machine
 Video of a physical Turing Machine running
 Turing machine calculations at wolframalpha.com