Turing Machine Sample
Turing Machine Sample
Turing Machines
https://plato.stanford.edu/archives/win2024/entries/turing-machine/ Turing Machines
from the Winter 2024 Edition of the First published Mon Sep 24, 2018
Stanford Encyclopedia Turing machines, first described by Alan Turing in Turing 1936–7, are
simple abstract computational devices intended to help investigate the
of Philosophy extent and limitations of what can be computed. Turing’s ‘automatic
machines’, as he termed them in 1936, were specifically devised for the
computing of real numbers. They were first named ‘Turing machines’ by
E
Alonzo Church in a review of Turing’s paper (Church 1937). Today, they
are considered to be one of the foundational models of computability and
(theoretical) computer science.[1]
Associate Editors:
PL
Co-Principal Editors: Edward N. Zalta & Uri Nodelman
Colin Allen, Hannah Kim, & Paul Oppenheimer 1. Definitions of the Turing Machine
Faculty Sponsors: R. Lanier Anderson & Thomas Icard 1.1 Turing’s Definition
Editorial Board: https://plato.stanford.edu/board.html 1.2 Post’s Definition
Library of Congress ISSN: 1095-5054 1.3 The Definition Formalized
1.4 Describing the Behavior of a Turing Machine
M
Notice: This PDF version was distributed by request to mem-
2. Computing with Turing Machines
bers of the Friends of the SEP Society and by courtesy to SEP
content contributors. It is solely for their fair use. Unauthorized 2.1 Some (Simple) Examples
distribution is prohibited. To learn how to join the Friends of the 2.2 Computable Numbers and Problems
SEP Society and obtain authorized PDF versions of SEP entries, 2.3 Turing’s Universal Machine
SA
1
Turing Machines Liesbeth De Mol
2.5 Variations on the Turing machine Entscheidungsproblem The problem to decide for every statement
3. Philosophical Issues Related to Turing Machines in first-order logic (the so-called restricted functional calculus, see
3.1 Human and Machine Computations the entry on classical logic for an introduction) whether or not it is
3.2 Thesis, Definition, Axioms or Theorem derivable in that logic.
4. Alternative Historical Models of Computability
4.1 General Recursive Functions Note that in its original form (Hilbert & Ackermann 1928), the problem
4.2 λ-Definability was stated in terms of validity rather than derivability. Given Gödel’s
4.3 Post Production Systems completeness theorem (Gödel 1929) proving that there is an effective
4.4 Formulation 1 procedure (or not) for derivability is also a solution to the problem in its
5. Impact of Turing Machines on Computer Science validity form. In order to tackle this problem, one needs a formalized
5.1 Impact on Theoretical Computer Science notion of “effective procedure” and Turing’s machines were intended to do
5.2 Turing Machines and the Modern Computer exactly that.
5.3 Theories of Programming
A Turing machine then, or a computing machine as Turing called it, in
Bibliography
Turing’s original definition is a machine capable of a finite set of
Academic Tools
configurations q , … , q (the states of the machine, called m-
1 n
Other Internet Resources
configurations by Turing). It is supplied with a one-way infinite and one-
Busy Beaver
dimensional tape divided into squares each capable of carrying exactly one
The Halting Problem
symbol. At any moment, the machine is scanning the content of one
Online Turing Machine Simulators
square r which is either blank (symbolized by S ) or contains a symbol
0
Software simulators
S ,…,S
1 mwith S = 0 and S = 1.
1 2
Hardware simulators
Related Entries The machine is an automatic machine (a-machine) which means that at
any given moment, the behavior of the machine is completely determined
by the current state and symbol (called the configuration) being scanned.
1. Definitions of the Turing Machine This is the so-called determinacy condition (Section 3). These a-machines
are contrasted with the so-called choice machines for which the next state
1.1 Turing’s Definition depends on the decision of an external device or operator (Turing 1936–7:
232). A Turing machine is capable of three types of action:
Turing introduced Turing machines in the context of research into the
foundations of mathematics. More particularly, he used these abstract 1. Print S , move one square to the left (L) and go to state q
i j
devices to prove that there is no effective general method or procedure to 2. Print S , move one square to the right (R) and go to state q
i j
solve, calculate or compute every instance of the following problem: 3. Print S , do not move (N) and go to state q
i j
The ‘program’ of a Turing machine can then be written as a finite set of 1956)) Turing, in his original definition of so-called computing machines,
quintuples of the form: used two kinds of symbols: the figures which consist entirely of 0s and 1s
and the so-called symbols of the second kind. These are differentiated on
q i S j S i,j M i,j q i,j
the Turing machine tape by using a system of alternating squares of
Where q is the current state, S the content of the square being scanned,
i j
figures and symbols of the second kind. One sequence of alternating
S the new content of the square; M specifies whether the machine is to
i,j i,j
squares contains the figures and is called the sequence of F-squares. It
move one square to the left, to the right or to remain at the same square, contains the sequence computed by the machine; the other is called the
and q is the next state of the machine. These quintuples are also called
i,j
sequence of E-squares. The latter are used to mark F-squares and are there
the transition rules of a given machine. The Turing machine T which, Simple
to “assist the memory” (Turing 1936–7: 232). The content of the E-
when started from a blank tape, computes the sequence S S S S … is 0 1 0 1
squares is liable to change. F-squares however cannot be changed which
then given by Table 1. means that one cannot implement algorithms whereby earlier computed
digits need to be changed. Moreover, the machine will never print a
Table 1: Quintuple representation of T Simple
symbol on an F-square if the F-square preceding it has not been computed
yet. This usage of F and E-squares can be quite useful (see Sec. 2.3) but,
; q 1 S 0 S 0 Rq 2
as was shown by Emil L. Post, it results in a number of complications (see
; q 1 S 1 S 0 Rq 2
Sec. 1.2).
; q 2 S 0 S 1 Rq 1
; q 2 S 1 S 1 Rq 1
There are two important things to notice about the Turing machine setup.
The first concerns the definition of the machine itself, namely that the
Note that T will never enter a configuration where it is scanning S
Simple 1
machine’s tape is potentially infinite. This corresponds to an assumption
so that two of the four quintuples are redundant. Another typical format to
that the memory of the machine is (potentially) infinite. The second
represent Turing machines and which was also used by Turing is the
concerns the definition of Turing computable, namely that a function will
transition table. Table 2 gives the transition table of T . Simple
be Turing computable if there exists a set of instructions that will result in
Table 2: Transition table for T Simple
a Turing machine computing the function regardless of the amount of time
it takes. One can think of this as assuming the availability of potentially
S0 S1
infinite time to complete the computation.
q1 S0 R q2 S0 R q2
not be carried out by any existing computer, perhaps because no existing Thus, Post introduced a modified version of the Turing machine. The most
machine has sufficient memory to carry out the task. Some Turing important differences between Post’s and Turing’s definition are:
computable functions may not ever be computable in practice, since they
may require more memory than can be built using all of the (finite number 1. Post’s Turing machine, when in a given state, either prints or moves
of) atoms in the universe. If we moreover assume that a physical computer and so its transition rules are more ‘atomic’ (it does not have the
is a finite realization of the Turing machine, and so that the Turing composite operation of moving and printing). This results in the
machine functions as a good formal model for the computer, a result quadruple notation of Turing machines, where each quadruple is in
which shows that a function is not Turing computable is very strong, since one of the three forms of Table 3:
it implies that no computer that we could ever build could carry out the Table 3: Post’s Quadruple notation
computation. In Section 2.4, it is shown that there are functions which are
not Turing-computable. q i S j S i,j q i,j
q i S j Lq i,j
Turing’s definition was standardized through (some of) Post’s 2. Post’s Turing machine has only one kind of symbol and so does not
modifications of it in Post 1947. In that paper Post proves that a certain rely on the Turing system of F and E-squares.
problem from mathematics known as Thue’s problem or the word problem 3. Post’s Turing machine has a two-way infinite tape.
for semi-groups is not Turing computable (or, in Post’s words, recursively 4. Post’s Turing machine halts when it reaches a state for which no
unsolvable). Post’s main strategy was to show that if it were decidable actions are defined.
then the following decision problem from Turing 1936–7 would also be
decidable: Note that Post’s reformulation of the Turing machine is very much rooted
in his Post 1936. (Some of) Post’s modifications of Turing’s definition
PRINT? The problem to decide for every Turing machine M became part of the definition of the Turing machine in standard works
whether or not it will ever print some symbol (for instance, 0). such as Kleene 1952 and Davis 1958. Since that time, several (logically
equivalent) definitions have been introduced. Today, standard definitions
It was however proven by Turing that PRINT? is not Turing computable
of Turing machines are, in some respects, closer to Post’s Turing machines
and so the same is true of Thue’s problem.
than to Turing’s machines. In what follows we will use a variant on the
While the uncomputability of PRINT? plays a central role in Post’s proof, standard definition from Minsky 1967 which uses the quintuple notation
Post believed that Turing’s proof of that was affected by the “spurious but has no E and F-squares and includes a special halting state H. It also
Turing convention” (Post 1947: 9), viz. the system of F and E-squares. has only two move operations, viz., L and R and so the action whereby the
machine merely prints is not used. When the machine is started, the tape is
blank except for some finite portion of the tape. Note that the blank square
Talk of “tape” and a “read-write head” is intended to aid the intuition (and S , its ID is given by P q S Q where P and Q are the finite words to the
j i j
reveals something of the time in which Turing was writing) but plays no left and right hand side of the square containing the symbol S . Figure 1j
important role in the definition of Turing machines. In situations where a gives a visual representation of an ID of some Turing machine T in state q i
formal analysis of Turing machines is required, it is appropriate to spell scanning the tape.
out the definition of the machinery and program in more mathematical
terms. Purely formally a Turing machine can be specified as a quadruple
T = (Q, Σ, s, δ) where:
configuration (Turing 1936–7: 232) also known today as instantaneous repetition of 0s):
description (ID) (Davis 1982: 6). At any stage of the computation of T its i
ID is given by:
– –
0q 1 00 For any problem that we believe is computable, we should be able to
– –
00q 2 00 construct a Turing machine which computes it. To put it in Turing’s
– – wording:
001q 1 00
– –
0010q 2 00 It is my contention that [the] operations [of a computing
– –
00101q 1 00 machine] include all those which are used in the computation
– –
001010q 2 00 of a number. (Turing 1936–7: 231)
occurrence of the symbol ‘0’. For example, to compute the sum 3 + 4 ,a Table 4: Transition table for T Add 2
q2 1 L q3 1 R q2
q3 0 R q4 1 L q3
q4 / 0 R q halt
numbers to be added, starting at the leftmost 1 of the first argument. The ) and then setting the 0 between n + 1 and m + 1 to 1 (state q ). We then 2
arguments are separated by a single 0 as required, and the first block have n + m + 2 and so we still need to erase one additional 1. This is
contains four ‘1’s, representing the number 3, and the second contains five done by erasing the leftmost 1 (states q and q ). Figure 4 shows this
3 4
Addition of two numbers n and m arbitrary number i of integers n , n , … , n . We assume again that the
1 2 j
q3 0 L q6 1 L q4
computes an arbitrarily precise approximation to that number. All of the
q4 0 R q5 1 L q4
algebraic numbers (roots of polynomials with algebraic coefficients) and
q5 / 0 R q1
many transcendental mathematical constants, such as e and π are Turing-
q6 0 R q halt 1 L q6
computable. Turing gave several examples of classes of numbers
computable by Turing machines (see section 10 Examples of large classes
The machine T uses the principle of shifting the addends to the right
Add i of numbers which are computable of Turing 1936–7) as a heuristic
which was also used for T . More particularly, T
Add 2 computes the sum add i argument showing that a wide diversity of classes of numbers can be
of n + 1, n + 1,… n + 1 from left to right, viz. it computes this sum as
1 2 i computed by Turing machines.
follows:
One might wonder however in what sense computation with numbers, viz.
N1 = n1 + n2 + 1
calculation, captures non-numerical but computable problems and so how
N2 = N1 + n3
Turing machines capture all general and effective procedures which
N3 = N2 + n4
determine whether something is the case or not. Examples of such
⋮ problems are:
N i = N i−1 + n i + 1
another 0 or not (states q and q ). If it is not the case, then there is at least
2 3 In general, these problems are of the form:
one more addend n to be added. Note that, as was the case for T
j+1 , Add 2
the machine needs to erase an additional one from the addend n which “decide for any given x whether or not x has property X”
j+1
is done via state q . It then moves back to state q . If, on the other hand,
5 1
An important challenge of both theoretical and concrete advances in
N = N ,
j ithe machine moves to the leftmost 1 of
computing (often at the interface with other disciplines) has become the
N = n + n + … + n + 1 and halts.
i 1 2 i
problem of providing an interpretation of X such that it can be tackled
computationally. To give just one concrete example, in daily
computational practices it might be important to have a method to decide
for any digital “source” whether or not it can be trusted and so one needs a (and so that Turing’s thesis is valid), it is implied that anything which can
computational interpretation of trust. be “computed”, can also be computed by that one universal machine.
Conversely, any problem that is not computable by the universal machine
The characteristic function of a predicate is a function which has the value is considered to be uncomputable.
TRUE or FALSE when given appropriate arguments. In order for such
functions to be computable, Turing relied on Gödel’s insight that these This is the rhetorical and theoretical power of the universal machine
kind of problems can be encoded as a problem about numbers (See concept, viz. that one relatively simple formal device captures all “the
Gödel’s incompleteness theorem and the next Sec. 2.3) In Turing’s possible processes which can be carried out in computing a number”
wording: (Turing 1936–7). It is also one of the main reasons why Turing has been
retrospectively identified as one of the founding fathers of computer
The expression “there is a general process for determining …” has science (see Section 5).
been used [here] […] as equivalent to “there is a machine which
will determine …”. This usage can be justified if and only if we So how to construct a universal machine U out of the set of basic
can justify our definition of “computable”. For each of these operations we have at our disposal? Turing’s approach is the construction
“general process” problems can be expressed as a problem of a machine U which is able to (1) ‘understand’ the program of any other
concerning a general process for determining whether a given machine T and, based on that “understanding”, (2) ‘mimic’ the behavior
n
integer n has a property G(n) [e.g. G(n) might mean “n is of T . To this end, a method is needed which allows to treat the program
n
satisfactory” or “n is the Gödel representation of a provable and the behavior of T interchangeably since both aspects are manipulated
n
formula”], and this is equivalent to computing a number whose n- on the same tape and by the same machine. This is achieved by Turing in
th figure is 1 if G(n) is true and 0 if it is false. (1936–7: 248) two basic steps: the development of (1) a notational method (2) a set of
elementary functions which treats that notation—independent of whether
It is the possibility of coding the “general process” problems as numerical it is formalizing the program or the behavior of T —as text to be
n
problems that is essential to Turing’s construction of the universal Turing compared, copied down, erased, etc. In other words, Turing develops a
machine and its use within a proof that shows there are problems that technique that allows to treat program and behavior on the same level.
cannot be computed by a Turing machine.
2.3.1 Interchangeability of program and behavior: a notation
2.3 Turing’s Universal Machine
Given some machine T , Turing’s basic idea is to construct a machine T
n
′
which, rather than directly printing the output of T , prints out the
n
uncomputability of certain problems, is, roughly speaking, a Turing
successive complete configurations or instantaneous descriptions of T . In
n
machine that is able to compute what any other Turing machine computes.
order to achieve this, T :′
[…] could be made to depend on having the rules of operation […] so, for instance q becomes DAAA.
3
can be treated by the same machine, viz.: expressed in terms of a sequence of capital letters and so the ‘program’ of
any machine T can be expressed by the set of symbols A, C, D, R, L, N
n
configuration notation
;DADDRDAA;DADCDRDAA;DAADDCRDA;DAADC
Thus, a first and perhaps most essential step, in the construction of U are
DCRDA
the quintuple and complete configuration notation and the idea of putting
them on the same tape. More particularly, the tape is divided into two This is, essentially, Turing’s version of Gödel numbering. Indeed, as
regions which we will call the A and B region here. The A region contains Turing shows, one can easily get a numerical description representation or
a notation of the ‘program’ of T and the B region a notation for the
n Description Number (D.N.) of a Turing machine T by replacing:
n
7313353117313135311731133153173113131531
DA … A,
i
Note that every machine T has a unique D.N.; a D.N. represents one and
n Finding the leftmost or rightmost occurrence of a sequence of
one machine only. symbols
Marking a sequence of symbols by some symbol a (remember that
Clearly, the method used to determine the S. D. of some machine T can n
Turing uses two kinds of alternating squares)
also be used to write out the successive complete configurations of T . n
Comparing two symbol sequences
Using “:” as a separator between successive complete configurations, the Copying a symbol sequence
first few complete configurations of T are:
Simple
1936–7: 242). Viz., it should be able not just to calculate but also to each symbol of S will be marked by some symbol a and each symbol of
1
compute, an issue that was also dealt with by others such as Church, S will be marked by some symbol b.
2
Gödel and Post using their own formal devices. It should, for instance, be
Turing defined nine different functions to show how the compare function
able to “recognize” whether it is in region A or B and it should be able to
can be computed with Turing machines:
determine whether or not a certain sequence of symbols is the next state q i
which needs to be executed. FIND(q , q , a): this machine function searches for the leftmost
i j
FINDL(q , q , a): the same as FIND but after a has been found, the
i j repeatedly computing COMPARE_ERASE on a and b. If A and B are
machine moves one square to the left. This is used in functions which equal, all a’s and b’s will have been erased and the machine moves to
need to compute on the symbols in F-squares which are marked by state q , else, it will move to state q . It is computed by
j n
computes ERASE on a repeatedly until all a’s have been erased. In a similar manner, Turing defines the following functions:
Then it moves to q . j
a to the right of the last complete configuration and erase all marks
the current symbol x, the machine computes FINDL on b (and so n
ai .
looks for the symbol marked by b). If there is a symbol y marked
REPLACE(q i , a, b) : replace all letters a by b.
with b, the machine computes EQUAL on x and y, else, the machine
MARK_NEXT_CONFIG(q , a): mark the first configuration q i Sj
goes to state q . In other words, CMP_XY(q , q , b) compares
j i j
i
there is a symbol marked a and one marked b and they are the same, Below is an outline of the universal Turing machine indicating how these
the machine goes to state q , else the machine goes to state q . The
i j basic functions indeed make possible universal computation. It is assumed
function is computed as that upon initialization, U has on its tape the S.D. of some Turing machine
FINDL(CMP_XY (q i , q j , b), FIND(q j , q n , b), a). T . Remember that Turing uses the system of alternating F and E-squares
n
COMPARE_ERASE(q i q j , q n , a, b) : the same as and so, for instance, the S.D. of T will be written on the tape of U as:
Simple
INIT: To the right of the rightmost quintuple of T_n, U prints MARK_COMPCONFIG: The last complete configuration of T as n
::_:_D_A_, where _ indicates an unmarked E-square. computed by U is marked into four regions: the configuration
qCC,iS CC,jitself is left unmarked; the symbol just preceding it is
FIND_NEXT_STATE: The machine first marks (1) with y the marked with an x and the remaining symbols to the left or marked
configuration q S of the rightmost (and so last) complete
CC,i CC,j
with v. Finally, all symbols to the right, if any, are marked with w and
configuration computed by U in the B part of the tape and (2) with x a “:” is printed to the right of the rightmost symbol in order to
the configuration q S of the leftmost quintuple which is notq,m q,n
indicate the beginning of the next complete configuration of T to be
n
preceded by a marked (with the letter z) semicolon in the A part of the computed by U. Continuing with our example, (1) will be marked as
tape. The two configurations are compared. If they are identical, the follows by U:
machine moves to MARK_OPERATIONS, if not, it marks the
semicolon preceding q S
with z and goes to q,m q,n
Dv DvCv Dx D_A_A_ D_ : _
(2)
D_A_A_ D_ D_C_ R_ D_A_
PRINT_COMPLETE_CONFIGURATION. U prints the next
q2 S0 S1 q1
complete configuration and erases all marks u, v, w, x, y. It then
returns to FIND_NEXT_STATE. U first searches for the rightmost
MARK_OPERATIONS: The machine U marks the operations that it
letter u, to check which move is needed (R, L, N) and erases the mark
needs to execute in order to compute the next complete configuration
u for R, L, N. Depending on the value L, R or N will then write down
of T . The printing and move (L,R, N) operations are marked with u
n
the next complete configuration by applying COPY to u, v, w, x, y.
5
and the next state with y. All marks z are erased. Continuing with our
The move operation (L, R, N) is accounted for by the particular
example, U will mark (2) as follows:
combination of u, v, w, x, y:
D_A_A_D_DuCuRuDyAy
When L : COPY 5 (FIND_NEXT_STATE, v, y, x, u, w) some research on what could be the smallest possible universal devices
When R : COPY 5 (FIND_NEXT_STATE, v, x, u, y, w) (with respect to the number of states and symbols) and quite some “small”
When N : COPY 5 (FIND_NEXT_STATE, v, x, y, u, w) universal Turing machines have been found. These results are usually
achieved by relying on other equivalent models of computability such as,
Following our example, since T needs to move right, the new
Simple
for instance, tag systems. For a survey on research into small universal
rightmost complete configursiation of T written on the tape of U
Simple
devices (see Margenstern 2000; Woods & Neary 2009).
is:
D_ D_C_ D_ D_C_ D_A_
2.4 The Halting Problem and the Entscheidungsproblem
S0 S1 S0 S1 q1
2.4.1 Direct and indirect proofs of uncomputable decision this end. A second step is to show that there are problems that are not
problems computable within the formalism. To achieve this, a uniform process U
needs to be set-up relative to the formalism which is able to compute
So, how can one show, for a particular decision problem Di , that it is not every computable number. One can then use (some form of)
computable? There are two main methods: diagonalization in combination with U to derive a contradiction.
Diagonalization was introduced by Cantor to show that the set of real
Indirect proof: take some problem D which is already known to be
uncomp numbers is “uncountable” or not denumerable. A variant of the method
uncomputable and show that the problem “reduces” to D . i was used also by Gödel in the proof of his first incompleteness theorem.
Direct proof: prove the uncomputability of D directly by assuming some
i
version of the Church-Turing thesis. 2.4.2 Turing’s basic problem CIRC?, PRINT? and the
Today, one usually relies on the first method while it is evident that in the
Entscheidungsproblem
absence of a problem D uncomp , Turing but also Church and Post (see Sec.
Recall that in Turing’s original version of the Turing machine, the
4) had to rely on the direct approach.
machines are computing real numbers. This implied that a “well-
The notion of reducibility has its origins in the work of Turing and Post behaving” Turing machine should in fact never halt and print out an
who considered several variants of computability (Post 1947; Turing infinite sequence of figures. Such machines were identified by Turing as
1939). The concept was later appropriated in the context of computational circle-free. All other machines are called circular machines. A number n
complexity theory and is today one of the basic concepts of both which is the D.N. of a circle-free machine is called satisfactory.
computability and computational complexity theory (Odifreddi 1989;
This basic difference is used in Turing’s proof of the uncomputability of:
Sipser 1996). Roughly speaking, a reduction of a problem D to a problem i
Church, Post and Turing each used more or less the same approach to this circular machine when it is provided with its own description number,
end (Gandy 1988). First of all, one needs a formalism which captures the
notion of computability. Turing proposed the Turing machine formalism to
hence the assumption of a machine which is capable of solving CIRC? Turing’s problem PRINT? is in fact very close to HALT? (see Davis
must be false. 1958: Chapter 5, Theorem 2.3).
Based on the uncomputability of CIRC?, Turing then shows that also A popular proof of HALT? goes as follows. Assume that HALT? is
PRINT? is not computable. More particularly he shows that if PRINT? computable. Then it should be possible to construct a Turing machine
were to be computable, also CIRC? would be decidable, viz. he rephrases which decides, for each machine T and some input w for T whether or
i i
PRINT? in such a way that it becomes the problem to decide for any not T will halt on w. Let us call this machine T . More particularly, we
i H
machine whether or not it will print an infinity of symbols which would have:
amount to deciding CIRC?.
HALT if T i halts on w
T H (T i , w) = {
Finally, based on the uncomputability of PRINT? Turing shows that the LOOP if T i loops on w
1. how for each Turing machine T, it is possible to construct a the machine T can be constructed. More particularly, we have:
H
It thus follows from the uncomputability of PRINT?, that the means that T does not halt and vice versa. A popular but quite informal
D
Entscheidungsproblem is not computable. variant of this proof was given by Christopher Strachey in the context of
programming (Strachey 1965).
2.4.3 The halting problem
2.5 Variations on the Turing machine
Given Turing’s focus on computable real numbers, his base decision
problem is about determining whether or not some Turing machine will As is clear from Sections 1.1 and 1.2, there is a variety of definitions of the
not halt and so is not quite the same as the more well-known halting Turing machine. One can use a quintuple or quadruple notation; one can
problem: have different types of symbols or just one; one can have a two-way
infinite or a one-way infinite tape; etc. Several other less obvious
HALT? The problem to decide for every Turing machine T whether or modifications have been considered and used in the past. These
not T will halt. modifications can be of two kinds: generalizations or restrictions. These
do not result in “stronger” or “weaker” models. Viz. these modified Multiple tapes
machines compute no more and no less than the Turing computable
functions. This adds to the robustness of the Turing machine definition. Instead of one tape one can consider a Turing machine with multiple tapes.
This turned out the be very useful in several different contexts. For
Binary machines instance, Minsky, used two-tape non-writing Turing machines to prove
that a certain decision problem defined by Post (the decision problem for
In his short 1936 note Post considers machines that either mark or unmark tag systems) is non-Turing computable (Minsky 1961). Hartmanis and
a square which means we have only two symbols S and S but he did not
0 1
Stearns then, in their founding paper for computational complexity theory,
prove that this formulation captures exactly the Turing computable proved that any n-tape Turing machine reduces to a single tape Turing
functions. It was Shannon who proved that for any Turing machine T with machine and so anything that can be computed by an n-tape or multitape
n symbols there is a Turing machine with two symbols that simulates T Turing machine can also be computed by a single tape Turing machine,
(Shannon 1956). He also showed that for any Turing machine with m and conversely (Hartmanis & Stearns 1965). They used multitape
states, there is a Turing machine with only two states that simulates it. machines because they were considered to be closer to actual digital
computers.
Non-erasing machines
1952, it was mentioned that Shannon proved that non-erasing machines Another variant is to consider Turing machines where the tape is not one-
can compute what any Turing machine computes. This result was given in dimensional but n-dimensional. This variant too reduces to the one-
a context of actual digital computers of the 50s which relied on punched dimensional variant.
tape (and so, for which, one cannot erase). Shannon’s result however
remained unpublished. It was Wang who published the result (Wang Non-deterministic machines
1957).
An apparently more radical reformulation of the notion of Turing machine
Non-writing machines is that of non-deterministic Turing machines. As explained in 1.1, one
fundamental condition of Turing’s machines is the so-called determinacy
It was shown by Minsky that for every Turing machine there is a non- condition, viz. the idea that at any given moment, the machine’s behavior
writing Turing machine with two tapes that simulates it (Minsky 1961, is completely determined by the configuration or state it is in and the
438–445) symbol it is scanning. Next to these, Turing also mentions the idea of
choice machines for which the next state is not completely determined by
the state and symbol pair. Instead, some external device makes a random
choice of what to do next. Non-deterministic Turing machines are a kind
of choice machines: for each state and symbol pair, the non-deterministic
machine makes an arbitrary choice between a finite (possibly zero) Besides these variants on the Turing machine model, there are also
number of states. Thus, unlike the computation of a deterministic Turing variants that result in models which capture, in some well-defined sense,
machine, the computation of a non-deterministic machine is a tree of more than the (Turing)-computable functions. Examples of such models
possible configuration paths. One way to visualize the computation of a are oracle machines (Turing 1939), infinite-time Turing machines
non-deterministic Turing machine is that the machine spawns an exact (Hamkins & Lewis 2008) and accelerating Turing machines (Copeland
copy of itself and the tape for each alternative available transition, and 2002). There are various reasons for introducing such stronger models.
each machine continues the computation. If any of the machines Some are well-known models of computability or recursion theory and are
terminates successfully, then the entire computation terminates and used in the theory of higher-order recursion and relative computability
inherits that machine’s resulting tape. Notice the word successfully in the (oracle machines); others, like the accelerating machines, were introduced
preceding sentence. In this formulation, some states are designated as in the context of supertasks and the idea of providing physical models that
accepting states and when the machine terminates in one of these states, “compute” functions which are not Turing-computable.
then the computation is successful, otherwise the computation is
unsuccessful and any other machines continue in their search for a 3. Philosophical Issues Related to Turing Machines
successful outcome. The addition of non-determinism to Turing machines
does not alter the extent of Turing-computability. Non-determinism was 3.1 Human and Machine Computations
introduced for finite automata in the paper, Rabin & Scott 1959, where it is
also shown that adding non-determinism does not result in more powerful In its original context, Turing’s identification between the computable
automata. Non-deterministic Turing machines are an important model in numbers and Turing machines was aimed at proving that the
the context of computational complexity theory. Entscheidungsproblem is not a computable problem and so not a so-called
“general process” problem (Turing 1936–7: 248). The basic assumption to
Weak and semi-weak machines be made for this result is that our “intuitive” notion of computability can
be formally defined as Turing computability and so that there are no
Weak Turing machines are machines where some word over the alphabet
“computable” problems that are not Turing computable. But what was
is repeated infinitely often to the left and right of the input. Semi-weak
Turing’s “intuitive” notion of computability and how can we be sure that it
machines are machines where some word is repeated infinitely often either
really covers all computable problems, and, more generally, all kinds of
to the left or right of the input. These machines are generalizations of the
computations? This is a very basic question in the philosophy of computer
standard model in which the initial tape contains some finite word
science.
(possibly nil). They were introduced to determine smaller universal
machines. Watanabe was the first to define a universal semi-weak machine At the time Turing was writing his paper, the modern computer was not
with six states and five symbols (Watanabe 1961). Recently, a number of developed yet and so rephrasings of Turing’s thesis which identify Turing
researchers have determined several small weak and semi-weak universal computability with computability by a modern computer are
Turing machines (e.g., Woods & Neary 2007; Cook 2004) interpretations rather than historically correct statements of Turing’s
thesis. The existing computing machines at the time Turing wrote his Locality condition L2 “each of the new observed squares is within L
paper, such as the differential analyzer or desk calculators, were quite squares of an immediately previously observed square.” (Turing
restricted in what they could compute and were used in a context of 1936–7: 250)
human computational practices (Grier 2007). It is thus not surprising that
Turing did not attempt to formalize machine computation but rather It is this so-called “direct appeal to intuition” (1936–7: 249) of Turing’s
human computation and so computable problems in Turing’s paper analysis and resulting model that explain why the Turing machine is today
become computable by human means. This is very explicit in Section 9 of considered by many as the best standard model of computability (for a
Turing 1936–7 where he shows that Turing machines are a ‘natural’ model strong statement of this point of view, see Soare 1996). Indeed, from the
of (human) computation by analyzing the process of human computation. above set of conditions one can quite easily derive Turing’s machines.
The analysis results in a kind of abstract human ‘computor’ who fulfills a This is achieved basically by analyzing the restrictive conditions into
set of different conditions that are rooted in Turing’s recognition of a set of “‘simple operations’ which are so elementary that it is not easy to imagine
human limitations which restrict what we can compute (of our sensory them further divided” (Turing 1936–7: 250).
apparatus but also of our mental apparatus). This ‘computor’ computes
Note that while Turing’s analysis focuses on human computation, the
(real) numbers on an infinite one-dimensional tape divided into squares
application of his identification between (human) computation and Turing
[Note: Turing assumed that the reduction of the 2-dimensional character of
machine computation to the Entscheidungsproblem suggests that he did
the paper a human mathematician usually works on “is not essential of
not consider the possibility of a model of computation that somehow goes
computation” (Turing 1936–7: 249)]. It has the following restrictions
“beyond” human computation and is capable of providing an effective and
(Gandy 1988; Sieg 1994):
general procedure which solves the Entscheidungsproblem. If that would
Determinacy condition D “The behaviour of the computer at any moment have been the case, he would not have considered the
is determined by the symbols which he is observing and his ‘state of Entscheidungsproblem to be uncomputable.
mind’ at that moment.” (Turing 1936–7: 250)
The focus on human computation in Turing’s analysis of computation, has
Boundedness condition B1 “there is a bound B to the number of symbols
led researchers to extend Turing’s analysis to computation by physical
or squares which the computer can observe at one moment. If he
devices. This results in (versions of) the physical Church-Turing thesis.
wishes to observe more, he must use successive observations.”
Robin Gandy focused on extending Turing’s analysis to discrete
(Turing 1936–7: 250)
mechanical devices (note that he did not consider analog machines). More
Boundedness condition B2 “the number of states of mind which need be
particularly, like Turing, Gandy starts from a basic set of restrictions of
taken into account is finite” (Turing 1936–7: 250)
computation by discrete mechanical devices and, on that basis, develops a
Locality condition L1 “We may […] assume that the squares whose
new model which he proved to be reducible to the Turing machine model.
symbols are changed are always ‘observed’ squares.” (Turing 1936–
This work is continued by Wilfried Sieg who proposed the framework of
7: 250)
Computable Dynamical Systems (Sieg 2008). Others have considered the
possibility of “reasonable” models from physics which “compute” avoid the notion of a thesis altogether and instead propose a set of axioms
something that is not Turing computable. See for instance Aaronson, used to sharpen the informal notion. There are several approaches, most
Bavarian, & Gueltrini 2016 (Other Internet Resources) in which it is notably, an approach of structural axiomatization where computability
shown that if closed timelike curves would exist, the halting problem itself is axiomatized (Sieg 2008) and one whereby an axiomatization is
would become solvable with finite resources. Others have proposed given from which the Church-Turing thesis can be derived (Dershowitz &
alternative models for computation which are inspired by the Turing Gurevich 2008).
machine model but capture specific aspects of current computing practices
for which the Turing machine model is considered less suited. One 4. Alternative Historical Models of Computability
example here are the persistent Turing machines intended to capture
interactive processes. Note however that these results do not show that Besides the Turing machine, several other models were introduced
there are “computable” problems that are not Turing computable. These independently of Turing in the context of research into the foundation of
and other related proposals have been considered by some authors as mathematics which resulted in theses that are logically equivalent to
reasonable models of computation that somehow compute more than Turing’s thesis. For each of these models it was proven that they capture
Turing machines. It is the latter kind of statements that became affiliated the Turing computable functions. Note that the development of the modern
with research on so-called hypercomputation resulting in the early 2000s computer stimulated the development of other models such as register
in a rather fierce debate in the computer science community, see, e.g., machines or Markov algorithms. More recently, computational approaches
Teuscher 2004 for various positions. in disciplines such as biology or physics, resulted in bio-inspired and
physics-inspired models such as Petri nets or quantum Turing machines. A
3.2 Thesis, Definition, Axioms or Theorem discussion of such models, however, lies beyond the scope of this entry.
As is clear, strictly speaking, Turing’s thesis is not provable, since, in its 4.1 General Recursive Functions
original form, it is a claim about the relationship between a formal and a
vague or intuitive concept. By consequence, many consider it as a thesis or The original formulation of general recursive functions can be found in
a definition. The thesis would be refuted if one would be able to provide Gödel 1934, which built on a suggestion by Herbrand. In Kleene 1936 a
an intuitively acceptable effective procedure for a task that is not Turing- simpler definition was given and in Kleene 1943 the standard form which
computable. This far, no such counterexample has been found. Other uses the so-called minimization or μ-operator was introduced. For more
independently defined notions of computability based on alternative information, see the entry on recursive functions.
foundations, such as recursive functions and abacus machines have also
Church used the definition of general recursive functions to state his
been shown to be equivalent to Turing computability. These equivalences
thesis:
between quite different formulations indicate that there is a natural and
robust notion of computability underlying our understanding. Given this
apparent robustness of our notion of computability, some have proposed to
Church’s thesis Every effectively calculable function is general converts an expression containing free variables into one that denotes
recursive a function
3. If M and N are λ-formulas then so is {M}(N), where {M}(N) is to be
In the context of recursive function one uses the notion of recursive understood as the application of the function M to N.
solvability and unsolvability rather than Turing computability and
uncomputability. This terminology is due to Post (1944). The λ-formulas, or well-formed formulas of λ-calculus are all and only
those formulas that result from (repeated) application of these three rules.
4.2 λ-Definability x
There are three operations or rules of conversion. Let us define S N
M| as
Church’s λ-calculus has its origin in the papers (Church 1932, 1933) and standing for the formula that results by substitution of N for x in M.
which were intended as a logical foundation for mathematics. It was x
1. Reduction. To replace any part {λx[M]}(N) of a formula by S M|
Church’s conviction at that time that this different formal approach might N
provided that the bound variables of M are distinct both from x and
avoid Gödel incompleteness (Sieg 1997: 177). However, the logical
from the free variables of N. For example {λx[x ]}(2) reduces to 2
2 2
definability are equivalent that Church announced his thesis publicly and
in terms of general recursive functions rather than λ-definability (Davis Church introduces the following abbreviations to define the natural
1982; Sieg 1997). numbers in λ-calculus:
In λ-calculus there are only two types of symbols. The three primitive 1 → λyx. yx,
symbols λ, (, ) also called the improper symbols, and an infinite list of 2 → λyx. y(yx),
variables. There are three rules to define the well-formed formulas of λ- 3 → λyx. y(y(yx)),
1. The λ-formulas are first of all the variables themselves. Using this definition, it is possible to λ-define functions over the positive
2. If P is a λ-formula containing x as a free variable then λx[P] is also a integers. A function F of one positive integer is λ-definable if we can find
λ-formula. The λ-operator is used to bind variables and it thus a λ-formula F, such that if F (m) = n and m and n are λ-formulas
standing for the integers m and n, then the λ-formula {F}(m) can be g 11 P i 1 g 12 P i 1 … g 1m 1 P i 1
1 2 m
1
g 1(m
1 +1)
g 1 P i 1 g 2 P i 2 … g m P i m g (m+1)
To give an example, applying S to the λ-formula standing for 2, we get:
The symbols g are a kind of metasymbols: they correspond to actual
(λabc. b(abc))(λyx. y(yx))
sequences of letters in actual productions. The symbols P are the
→ λbc. b((λyx. y(yx))bc)
operational variables and so can represent any sequence of letters in a
→ λbc. b((λx. b(bx))c)
production. So, for instance, consider a production system over the
→ λbc. b(b(bc))
alphabet Σ = {a, b} with initial word:
Today, λ-calculus is considered to be a basic model in the theory of W 0 = ababaaabbaabbaabbaba
programming.
and the following production rule:
4.3 Post Production Systems P 1,1 bbP 1,2
produces
Around 1920–21 Emil Post developed different but related types of
P 1,3 aaP 1,4
production systems in order to develop a syntactical form which would
allow him to tackle the decision problem for first-order logic. One of these Then, starting with W , there are three possible ways to apply the
0
forms are Post canonical systems C which became later known as Post production rule and in each application the variables P will have 1,i
production systems. different values but the values of the g’s are fixed. Any set of finite
sequences of words that can be produced by a canonical system is called a
A canonical system consists of a finite alphabet Σ, a finite set of initial
canonical set.
words W , W ,…, W
0,0 0,1 and a finite set of production rules of the
0,n
following form: A special class of canonical forms defined by Post are normal systems. A
normal system N consists of a finite alphabet Σ, one initial word W ∈ Σ 0
∗
gi P
produces
′
P gi
Any set of finite sequences of words that can be produced by a normal Formulation 1 is very similar to Turing machines but the ‘program’ is
system is called a normal set. Post was able to show that for any canonical given as a list of directions which a human worker needs to follow. Instead
set C over some alphabet Σ there is a normal set N over an alphabet Δ of a one-way infinite tape, Post’s ‘machine’ consists of a two-way infinite
with Σ ⊆ Δ such that C = N ∩ Σ . It was his conviction that (1) any set
∗
symbol space divided into boxes. The idea is that a worker is working in
of finite sequences that can be generated by finite means can be generated this symbol space, being capable of a set of five primitive acts (O mark a 1
by canonical systems and (2) the proof that for every canonical set there is box, O unmark a box, O move one box to the left, O move one box to
2 3 4
a normal set which contains it, which resulted in Post’s thesis I: the right, O determining whether the box he is in is marked or
5
Post’s thesis I (Davis 1982) Every set of finite sequences of letters direction d always has one of the following forms:
i
Σ which can be generated by a finite process is of the form B. Perform operation O and according as the box the worker is in is
5
C. Stop.
Post realized that “[for the thesis to obtain its full generality] a complete
analysis would have to be made of all the possible ways in which the Post also defined a specific terminology for his formulation 1 in order to
human mind could set up finite processes for generating sequences” (Post define the solvability of a problem in terms of formulation 1. These
1965: 408) and it is quite probable that the formulation 1 given in Post notions are applicability, finite-1-process, 1-solution and 1-given. Roughly
1936 and which is almost identical to Turing’s machines is the result of speaking these notions assure that a decision problem is solvable with
such an analysis. formulation 1 on the condition that the solution given in the formalism
always terminates with a correct solution.
Post production systems became important formal devices in computer
science and, more particularly, formal language theory (Davis 1989; 5. Impact of Turing Machines on Computer Science
Pullum 2011).
Turing is today one of the most celebrated figures of computer science.
4.4 Formulation 1 Many consider him as the father of computer science and the fact that the
main award in the computer science community is called the Turing award
In 1936 Post published a short note from which one can derive Post’s is a clear indication of that (Daylight 2015). This was strengthened by the
second thesis (De Mol 2013): Turing centenary celebrations from 2012, which were largely coordinated
by S. Barry Cooper. This resulted not only in an enormous number of
Post’s thesis II Solvability of a problem in the intuitive sense
scientific events around Turing but also a number of initiatives that
coincides with solvability by formulation 1
brought the idea of Turing as the father of computer science also to the
broader public (Bullynck, Daylight, & De Mol 2015). Amongst Turing’s standard references not just for early computability theory but also for
contributions which are today considered as pioneering, the 1936 paper on more theoretical reflections in the late 1950s and 1960s on computing.
Turing machines stands out as the one which has the largest impact on
computer science. However, recent historical research shows also that one Secondly, one sees that in the 1950s there is a need for theoretical models
should treat the impact of Turing machines with great care and that one to reflect on the new computing machines, their abilities and limitations
should be careful in retrofitting the past into the present. and this in a more systematic manner. It is in that context that the
theoretical work already done was picked up. One important development
5.1 Impact on Theoretical Computer Science is automata theory in which one can situate, amongst others, the
development of other machine models like the register machine model or
Today, the Turing machine and its theory are part of the theoretical the Wang B machine model which are, ultimately, rooted in Turing’s and
foundations of computer science. It is a standard reference in research on Post’s machines; there are the minimal machine designs discussed in
foundational questions such as: Section 5.2; and there is the use of Turing machines in the context of what
would become the origins of formal language theory, viz the study of
What is an algorithm? different classes of machines with respect to the different “languages” they
What is a computation? can recognize and so also their limitations and strengths. It are these more
What is a physical computation? theoretical developments that contributed to the establishment of
What is an efficient computation? computational complexity theory in the 1960s. Of course, besides Turing
etc. machines, other models also played and play an important role in these
developments. Still, within theoretical computer science it is mostly the
It is also one of the main models for research into a broad range of
Turing machine which remains the model, even today. Indeed, when in
subdisciplines in theoretical computer science such as: variant and
1965 one of the founding papers of computational complexity theory
minimal models of computability, higher-order computability,
(Hartmanis & Stearns 1965) is published, it is the multitape Turing
computational complexity theory, algorithmic information theory, etc.
machine which is introduced as the standard model for the computer.
This significance of the Turing machine model for theoretical computer
science has at least two historical roots.
5.2 Turing Machines and the Modern Computer
First of all, there is the continuation of the work in mathematical logic
In several accounts, Turing has been identified not just as the father of
from the 1920s and 1930s by people like Martin Davis—who is a student
computer science but as the father of the modern computer. The classical
of Post and Church—and Kleene. Within that tradition, Turing’s work was
story for this more or less goes as follows: the blueprint of the modern
of course well-known and the Turing machine was considered as the best
computer can be found in von Neumann’s EDVAC design and today
model of computability given. Both Davis and Kleene published a book in
classical computers are usually described as having a so-called von
the 1950s on these topics (Kleene 1952; Davis 1958) which soon became
Neumann architecture. One fundamental idea of the EDVAC design is the
so-called stored-program idea. Roughly speaking this means the storage of research it is clear that claims about Turing being the inventor of the
instructions and data in the same memory allowing the manipulation of modern computer give a distorted and biased picture of the development
programs as data. There are good reasons for assuming that von Neumann of the modern computer. At best, he is one of the many who made a
knew the main results of Turing’s paper (Davis 1988). Thus, one could contribution to one of the several historical developments (scientific,
argue that the stored-program concept originates in Turing’s notion of the political, technological, social and industrial) which resulted, ultimately, in
universal Turing machine and, singling this out as the defining feature of (our concept of) the modern computer. Indeed, the “first” computers are
the modern computer, some might claim that Turing is the father of the the result of a wide number of innovations and so are rooted in the work of
modern computer. Another related argument is that Turing was the first not just one but several people with diverse backgrounds and viewpoints.
who “captured” the idea of a general-purpose machine through his notion
of the universal machine and that in this sense he also “invented” the In the 1950s then the (universal) Turing machine starts to become an
modern computer (Copeland & Proudfoot 2011). This argument is then accepted model in relation to actual computers and is used as a tool to
strengthened by the fact that Turing was also involved with the reflect on the limits and potentials of general-purpose computers by both
construction of an important class of computing devices (the Bombe) used engineers, mathematicians and logicians. More particularly, with respect
for decrypting the German Enigma code and later proposed the design of to machine designs, it was the insight that only a few number of operations
the ACE (Automatic Computing Engine) which was explicitly identified were required to built a general-purpose machine which inspired in the
as a kind of physical realization of the universal machine by Turing 1950s reflections on minimal machine architectures. Frankel, who
himself: (partially) constructed the MINAC stated this as follows:
Some years ago I was researching on what might now be described One remarkable result of Turing’s investigation is that he was able
as an investigation of the theoretical possibilities and limitations of to describe a single computer which is able to compute any
digital computing machines. […] Machines such as the ACE may computable number. He called this machine a universal computer.
be regarded as practical versions of this same type of machine. It is thus the “best possible” computer mentioned.
(Turing 1947)
[…] This surprising result shows that in examining the question of
Note however that Turing already knew the ENIAC and EDVAC designs what problems are, in principle, solvable by computing machines,
and proposed the ACE as a kind of improvement on that design (amongst we do not need to consider an infinite series of computers of
others, it had a simpler hardware architecture). greater and greater complexity but may think only of a single
machine.
These claims about Turing as the inventor and/or father of the computer
have been scrutinized by some historians of computing (Daylight 2014; Even more surprising than the theoretical possibility of such a
Haigh 2013; Haigh 2014; Mounier-Kuhn 2012), mostly in the wake of the “best possible” computer is the fact that it need not be very
Turing centenary and this from several perspectives. Based on that complex. The description given by Turing of a universal computer
is not unique. Many computers, some of quite modest complexity,
satisfy the requirements for a universal computer. (Frankel 1956: context of automatic programming in the 1950s (Daylight 2015). In the
635) machine design context it was the minimizing of the machine instructions
that was the most important consequence of that viewpoint. In the
The result was a series of experimental machines such as the MINAC, TX- programming context then it was about the idea that one can built a
0 (Lincoln Lab) or the ZERO machine (van der Poel) which in their turn machine that is able to ‘mimic’’ the behavior of any other machine and so,
became predecessors of a number of commercial machines. It is worth ultimately, the interchangeability between machine hardware and language
pointing out that also Turing’s ACE machine design fits into this implementations. This is introduced in several forms in the 1950s by
philosophy. It was also commercialized as the BENDIX G15 machine (De people like John W. Carr III and Saul Gorn—who were also actively
Mol, Bullynck, & Daylight 2018). involved in the shaping of the Association for Computing Machinery
(ACM)—as the unifying theoretical idea for automatic programming
Of course, by minimizing the machine instructions, coding or
which indeed is about the (automatic) “translation” of higher-order to
programming became a much more complicated task. To put it in Turing’s
lower-level, and, ultimately, machine code. Thus, also in the context of
words who clearly realized this trade-off between code and (hard-wired)
programming, the universal Turing machine starts to take on its
instructions when designing the ACE: “[W]e have often simplified the
foundational role in the 1950s (Daylight 2015).
circuit at the expense of the code” (Turing 1947). And indeed, one sees
that with these early minimal designs, much effort goes into developing Whereas the Turing machine is and was a fundamental theoretical model
more efficient coding strategies. It is here that one can also situate one delimiting what is possible and not on the general level, it did not have a
historical root of making the connection between the universal Turing real impact on the syntax and semantics of programming languages. In
machine and the important principle of the interchangeability between that context it were rather λ-calculus and Post production systems that had
hardware and programs. an effect (though also here one should be careful in overstating the
influence of a formal model on a programming practice). In fact, Turing
Today, the universal Turing machine is by many still considered as the
machines were often regarded as machine models rather than as a model
main theoretical model of the modern computer especially in relation to
for programming:
the so-called von Neumann architecture. Of course, other models have
been introduced for other architectures such as the Bulk synchronous Turing machines are not conceptually different from the automatic
parallel model for parallel machines or the persistent Turing machine for computers in general use, but they are very poor in their control
modeling interactive problems. structure. […] Of course, most of the theory of computability deals
with questions which are not concerned with the particular ways
5.3 Theories of Programming computations are represented. It is sufficient that computable
functions be represented somehow by symbolic expressions, e.g.,
The idea that any general-purpose machine can, in principle, be modeled
numbers, and that functions computable in terms of given
as a universal Turing machine also became an important principle in the
functions be somehow represented by expressions computable in
terms of the expressions representing the original functions. –––, 1936a, “An Unsolvable Problem of Elementary Number Theory”,
However, a practical theory of computation must be applicable to American Journal of Mathematics, 58(2): 345–363.
particular algorithms. (McCarthy 1963: 37) –––, 1936b, “A Note on the Entscheidungsproblem”, Journal of Symbolic
Logic, 1(1): 40–41. doi:10.2307/2269326
Thus one sees that the role of the Turing machine for computer science –––, 1937, “Review of: On Computable Numbers with An Application to
should be situated rather on the theoretical level: the universal machine is the Entscheidungsproblem by A.M. Turing”, Journal of Symbolic
today by many still considered as the model for the modern computer Logic, 2(1): 42–43. doi:10.1017/S002248120003958X
while its ability to mimic machines through its manipulation of programs- Cook, Matthew, 2004, “Universality in Elementary Cellular Automata”,
as-data is one of the basic principles of modern computing. Moreover, its Complex Systems, 15(1): 1–40.
robustness and naturalness as a model of computability have made it the Cooper, S. Barry and Jan Van Leeuwen, 2013, Alan Turing: His Work and
main model to challenge if one is attacking versions of the so-called Impact, Amsterdam: Elsevier. doi:10.1016/C2010-0-66380-2
(physical) Church-Turing thesis. Copeland, B. Jack, 2002, “Accelerating Turing Machines”, Minds and
Machines, 12(2): 281–301. doi:10.1023/A:1015607401307
Bibliography Copeland, B. Jack and Diane Proudfoot, 2011, “Alan Turing: Father of the
Modern Computer”, The Rutherford Journal, 4: 1. [Copeland &
Barwise, Jon and John Etchemendy, 1993, Turing’s World, Stanford, CA:
Proudfoot 2011 available online]
CSLI Publications.
Davis, Martin, 1958 [1982], Computability and Unsolvability, New York:
Boolos, George S. and Richard C. Jeffrey, 1974, Computability and Logic,
McGraw-Hill. Reprinted Dover, 1982.
Cambridge: Cambridge University Press; fifth edition 2007.
–––, 1965, The Undecidable. Basic papers on undecidable propositions,
doi:10.1017/CBO9780511804076 (fifth edition)
unsolvable problems and computable functions, New York: Raven
Bromley, Allan G., 1985, “Stored Program Concept. The Origin of the
Press.
Stored Program Concept”, Technical Report 274, Basser Department
–––, 1978, “What is a Computation?”, Lynn Arthur Steen (ed.),
of Computer Science, November 1985. [Bromley 1985 available
Mathematics Today: Twelve Informal Essays, New York: Springer,
online]
pp. 241–267. doi:10.1007/978-1-4613-9435-8_10
Bullynck, Maarten, Edgar G. Daylight, and Liesbeth De Mol, 2015, “Why
–––, 1982, “Why Gödel Didn’t Have Church’s Thesis”, Information and
Did Computer Science Make a Hero Out of Turing?”,
Control, 54:(1–2): 3–24. doi:10.1016/S0019-9958(82)91226-8
Communications of the ACM, 58(3): 37–39.doi:10.1145/2658985
–––, 1988, “Mathematical Logic and the Origin of the Modern Computer”,
Church, Alonzo, 1932, “A Set of Postulates for the Foundation of Logic”,
in Herken 1988: 149–174.
Annals of Mathematics, 33(2): 346–366. doi:10.2307/1968337
–––, 1989, “Emil Post’s Contribution to Computer Science”, Proceedings
–––, 1933, “A Set of Postulates for the Foundation of Logic (Second
of the Fourth Annual Symposium on Logic in Computer Science,
Paper)”, Annals of Mathematics, 34(4): 839–864.
doi:10.2307/1968702
IEEE Computer Society Press, pp. 134–137. Gandy, Robin, 1980, “Church’s Thesis and Principles for Mechanism”, in
doi:10.1109/LICS.1989.39167 Jon Barwise, H. Jerome Keisler, and Kenneth Kunen (eds.), The
Davis, Martin and Wilfried Sieg, 2015, “Conceptual Confluence in 1936: Kleene Symposium: Proceedings of the Symposium Held June 18–24,
Post and Turing”, in Giovanni Sommaruga and Thomas Strahm 1978 at Madison, Wisconsin, U.S.A., (Studies in Logic and the
(eds.), Turing’s Revolution: The Impact of His Ideas about Foundations of Mathematics, 101), Amsterdam: North-Holland, pp.
Computability, Cham: Springer. doi:10.1007/978-3-319-22156-4_1 123–148. doi:10.1016/S0049-237X(08)71257-6
Daylight, Edgar G., 2014, “A Turing Tale”, Communications of the ACM, –––, 1988, “The Confluence of Ideas in 1936”, in Herken 1988: 55–111.
57(10): 36–38. doi:10.1145/2629499 Gödel, Kurt, 1929, “Die Vollständigkeit der Axiome des logischen
–––, 2015, “Towards a Historical Notion of ‘Turing—The Father of Funktionenkalkül”, Monatshefte für Mathematik und Physik, 37:
Computer Science’”, History and Philosophy of Logic, . 36(3): 205– 349–360. doi:10.1007/BF01696781
228. doi:10.1080/01445340.2015.1082050 –––, 1934, “On Undecidable Propositions of Formal Mathematical
De Mol, Liesbeth, 2013, “Generating, Solving and the Mathematics of Systems”, mimeographed lecture notes by S. C. Kleene and J. B.
Homo Sapiens. Emil Post’s Views On computation”, Hector Zenil Rosser, Institute for Advanced Study, Princeton, NJ; corrected and
(ed.), A Computable Universe. Understanding Computation & amplified in Davis 1965: 41–74.
Exploring Nature As Computation, Hackensack, NJ: World Scientific, Grier, David Alan, 2007, When Computers Were Human, Princeton, NJ:
pp. 45–62. doi:10.1142/9789814374309_0003 [De Mol 2013 Princeton University Press.
available online] Haigh, Thomas, 2013, “‘Stored Program Concept’ Considered Harmful:
De Mol, Liesbeth, Maarten Bullynck, and Edgar G. Daylight, 2018, “Less History and Historiography”, in Paola Bonizzoni, Vasco Brattka, and
is More in the Fifties: Encounters between Logical Minimalism and Benedikt Löwe, The Nature of Computation. Logic, Algorithms,
Computer Design during the 1950s”, IEEE Annals of the History of Applications: 9th Conference on Computability in Europe, CiE 2013,
Computing, 40(1): 19–45. doi:10.1109/MAHC.2018.012171265 [De Milan, Italy, July 1–5, 2013 Proceedings, (Lecture Notes in
Mol et al. 2018 available online] Computer Science, 7921), Berlin: Springer, pp. 241–251.
Deutsch, D., 1985, “Quantum Theory, the Church-Turing Principle and the doi:10.1007/978-3-642-39053-1_28
Universal Quantum Computer”, Proceedings of the Royal Society A, –––, 2014, “Actually, Turing Did Not Invent the Computer”,
400(1818): 97–117. doi:10.1098/rspa.1985.0070 Communications of the ACM, 57(1): 36–41. doi:10.1145/2542504
Dershowitz, Nachum and Yuri Gurevich, 2008, “ A Natural Hamkins, Joel David and Andy Lewis, 2000, “Infinite Time Turing
Axiomatization of Computability and Proof of Church’s Thesis”, Machines”, Journal of Symbolic Logic, 65(2): 567–604.
Bulletin of Symbolic Logic, 14(3): 299–350. doi:10.2307/2586556
Frankel, Stanley, 1956, “Useful Applications of a Magnetic-Drum Hartmanis, J. and R.E. Stearns, 1965, “On the Computational Complexity
Computer”, Electrical Engineering, 75(7): 634–39, of Algorithms” Transactions of the American Mathematical Society,
doi:10.1109/EE.1956.6442018 117: 285–306. doi:10.1090/S0002-9947-1965-0170805-7
Herken, Rolf, (ed.), 1988, The Universal Turing Machine: A Half-Century McCarthy, John, 1963, “A Basis for a Mathematical Theory of
Survey, New York: Oxford University Press. Computation”, in: P. Braffort and D. Hirschberg, Computer
Hilbert, David, 1930, “Naturerkennen und Logik”, Naturwissenschaften, Programming and Formal Systems, Amsterdam: North-Holland, pp.
18(47–49): 959–963. doi:10.1007/BF01492194 33–70. [McCarthy 1963 available online]
Hilbert, David and Wilhelm Ackermann, 1928, Grundzüge der Minsky, Marvin, 1961, “Recursive Unsolvability of Post’s Problem of
Theoretischen Logik, Berlin: Springer. doi:10.1007/978-3-642-65400- ‘Tag’ and other Topics in Theory of Turing Machines”, Annals of
8 Mathematics, 74(3): 437–455. doi:10.2307/2269716
Hodges, Andrew, 1983, Alan Turing: The Enigma, New York: Simon and –––, 1967, Computation: Finite and Infinite Machines, Englewood Cliffs,
Schuster. NJ: Prentice Hall.
Kleene, Stephen Cole, 1936, “General Recursive Functions of Natural Moore, E.F., 1952, “A simplified universal Turing machine”, Proceedings
Numbers”, Mathematische Annalen, 112: 727–742. of the Association of Computing Machinery (meetings at Toronto,
doi:10.1007/BF01565439 Ontario), Washington, DC: Sauls Lithograph, 50–55.
–––, 1943, “Recursive predicates and quantifiers”, Transactions of the doi:10.1145/800259.808993
American Mathematical Society, 53(1): 41–73. doi:10.2307/2267986 Mounier-Kuhn, Pierre, 2012, “Logic and Computing in France: A Late
–––, 1952, Introduction to Metamathematics, Amsterdam: North Holland. Convergence”, in AISB/IACAP World Congress 2012: History and
Lambek, Joachim, 1961, “How to Program an Infinite Abacus”, Canadian Philosophy of Programming, University of Birmingham, 2-6 July
Mathematical Bulletin, 4: 295–302. doi:10.4153/CMB-1961-032-6 2012. [Mounier-Kuhn 2012 available online]
Lewis, Henry R. and Christos H. Papadimitriou, 1981, Elements of the Odifreddi, P., 1989, Classical Recursion Theory, Amsterdam: Elsevier.
Theory of Computation, Englewood Cliffs, NJ: Prentice-Hall. Petzold, Charles, 2008, The Annotated Turing: A Guided Tour Through
Lin, Shen and Tibor Radó, 1965, “Computer Studies of Turing Machine Alan Turing’s Historic Paper on Computability and Turing Machines,
Problems”, Journal of the Association for Computing Machinery, Indianapolis, IN: Wiley.
12(2): 196–212. doi:10.1145/321264.321270 Post, Emil L., 1936, “Finite Combinatory Processes-Formulation 1”,
Mancosu, Paolo, Richard Zach, and Calixto Badesa, 2009, “The Journal of Symbolic Logic, 1(3): 103–105. doi:10.2307/2269031
Development of Mathematical Logic from Russell to Tarski, 1900– –––, 1944, “Recursively Enumerable Sets of Positive Integers and Their
1935”, in Leila Haaparanta (ed.), The Development of Modern Logic, Decision Problems”, Bulletin of the American Mathematical Society,
New York: Oxford University Press, pp. 318–470. 50(5): 284–316. [Post 1944 available online]
doi:10.1093/acprof:oso/9780195137316.003.0029 [Mancosu et al. –––, 1947, “Recursive Unsolvability of a Problem of Thue”, Journal of
2009 available online] Symbolic Logic, 12(1): 1–11. doi:10.2307/2267170
Margenstern, Maurice, 2000, “Frontier Between Decidability and –––, 1965, “Absolutely Unsolvable Problems and Relatively Undecidable
Undecidability: A Survey”, Theoretical Computer Science, 231(2): Propositions—Account of an Anticipation”, in Martin Davis (ed.),
217–251. doi:10.1016/S0304-3975(99)00102-4 The Undecidable: Basic Papers on Undecidable Propositions,
Unsolvable Problems and Computable Functions, New York: Raven Computable, New York: Springer Verlag, pp. 139–152.
Press. Corrected republication 2004, Dover publications, New York, doi:10.1007/978-0-387-68546-5_7
pp. 340–433. Sipser, Michael, 1996, Introduction to the Theory of Computation, Boston:
Pullum, Geoffrey K., 2011, “On the Mathematical Foundations of PWS Publishing.
Syntactic Structures”, Journal of Logic, Language and Information, Soare, Robert I., 1996, “Computability and Recursion”, Bulletin for
20(3): 277–296. doi:10.1007/s10849-011-9139-8 Symbolic Logic, 2(3): 284–321. doi:10.2307/420992
Rabin, M.O. and D. Scott, 1959, “Finite Automata and their Decision Strachey, Christopher, 1965, “An Impossible Program (letter to the editor
Problems”, IBM Journal of Research and Development, 3(2): 114– )”, The Computer Journal, 7(4): 313. doi:10.1093/comjnl/7.4.313
125. doi:10.1147/rd.32.0114 Teuscher, Christof (ed.), 2004, Alan Turing: Life and Legacy of a Great
Radó, Tibor, 1962, “On Non-Computable Functions”, Bell System Thinker, Berlin: Springer. doi:10.1007/978-3-662-05642-4
Technical Journal, 41(3/May): 877–884. doi:10.1002/j.1538- Turing, A.M., 1936–7, “On Computable Numbers, With an Application to
7305.1962.tb00480.x the Entscheidungsproblem”, Proceedings of the London
Shannon, Claude E., 1956, “A Universal Turing Machine with Two Mathematical Society, s2-42: 230–265; correction ibid., s2-43: 544–
Internal States”, in Shannon & McCarthy 1956: 157–165. 546 (1937). doi:10.1112/plms/s2-42.1.230 and doi:10.1112/plms/s2-
doi:10.1515/9781400882618-007 43.6.544
Shannon, Claude E. and John McCarthy (eds), 1956, Automata Studies, –––, 1937, “Computability and λ-Definability”, Journal of Symbolic
(Annals of Mathematics Studies, 34), Princeton: Princeton University Logic, 2(4): 153–163. doi:10.2307/2268280
Press. –––, 1939, “Systems of Logic Based on Ordinals”, Proceedings of the
Shapiro, Stewart, 2007, “Computability, Proof, and Open-Texture”, in London Mathematical Society, s2-45: 161–228. doi:10.1112/plms/s2-
Adam Olszewski, Jan Wolenski, and Robert Janusz (eds.), Church’s 45.1.161
Thesis After 70 years, Berlin: Ontos Verlag, pp. 420–455. –––, 1947 [1986], “Lecture to the London Mathematical Society on 20
doi:10.1515/9783110325461.420 February 1947”, reprinted in A M. Turing’s ACE Report of 1946 and
Sieg, Wilfried, 1994, “Mechanical Procedures and Mathematical Other Papers: Papers by Alan Turing and Michael Woodger,
Experience”, in Alexander George (ed.), Mathematics and Mind, (Charles Babbage Institute Reprint, 10), B.E. Carpenter and R.W.
Oxford: Oxford University Press, pp. 71–117. Doran (eds.), Cambridge, MA: MIT Press, 1986.
–––, 1997, “Step by Recursive Step: Church’s Analysis of Effective –––, 1954, “Solvable and Unsolvable Problems”, Science News,
Calculability”, The Bulletin of Symbolic Logic, 3(2): 154–180. (February, Penguin), 31: 7–23.
doi:10.2307/421012 Wang, Hao, 1957, “A Variant to Turing’s Theory of Computing
–––, 2008, “Church without Dogma: Axioms for Computability”, in S. Machines”, Journal of the ACM, 4(1): 63–92.
Barry Cooper, Benedikt Löwe, and Andrea Sorbi (eds.), New doi:10.1145/320856.320867
Computational Paradigms: Changing Conceptions of What is
Watanabe, Shigeru, 1961, “5-Symbol 8-State and 5-Symbol 6-State available at arXiv.org.
Universal Turing Machines”, Journal of the ACM, 8(4): 476–483. The Alan Turing Home Page, maintained by Andrew Hodges
doi:10.1145/321088.321090 Bletchley Park, in the U.K., where, during the Second World War,
Woods, Damien and Turlough Neary, 2007, “Small Semi-Weakly Alan Turing was involved in code breaking activities at Station X.
Universal Turing Machines”, in Jérôme Durand-Lose and Maurice
Margenstern (eds.), Machines, Computations, and Universality: 5th Busy Beaver
International Conference, MCU 2007 Orléans, France, September
10–13, 2007, (Lecture Notes in Computer Science, 4664), Berlin: Michael Somos’ page of Busy Beaver references.
Springer, pp. 303–315. doi:10.1007/978-3-540-74593-8_26
–––, 2009, “The Complexity of Small Universal Turing Machines: A The Halting Problem
Survey”, Theoretical Computer Science, 410(4–5): 443–450.
doi:10.1016/j.tcs.2008.09.051 Online Turing Machine Simulators
Academic Tools Turing machines are more powerful than any device that can actually be
built, but they can be simulated both in software and hardware.
How to cite this entry.
Preview the PDF version of this entry at the Friends of the SEP Software simulators
Society.
Look up topics and thinkers related to this entry at the Internet There are many Turing machine simulators available. Here are three
Philosophy Ontology Project (InPhO).
software simulators that use different technologies to implement
Enhanced bibliography for this entry at PhilPapers, with links
to its database. simulators using your browser.
Turing Machine in the Classic Style, Mike Davey’s physical Turing This is an animation made up of 9 slides. All use the same horizontal strip
machine simulator. of concatenated boxed containing either 0s or 1s with the left and right
Lego of Doom, Turing machine simulator using Lego™. ends of the strip being ragged.
Related Entries
Church-Turing Thesis | computability and complexity | computational
complexity theory | recursive functions | Turing, Alan
Slide 1: All boxes have 0s. The third box from the left is red and there is a
Acknowledgments label pointing to it stating q 0 : 0Rq .
1 2
Long descriptions for some figures in Turing Slide 2: The fourth box from the left is red and there is a label pointing to
it stating q 0 : 1Rq .
Machines 2 1
Figure 1 description
Slide 3: The fourth box is now 1. The fifth box from the left is red and
there is a label pointing to it stating q 0 : 0Rq .
1 2
A horizontal strip of concatenated boxed 0s and 1s with the left and right
ends of the strip being ragged. The numbers from left to right are
01001100000010000000. The sixth 0 from the left is red and label points
to it stating q 0 : 0Rq , 0.
i i
Slide 4: The sixth box from the left is red and there is a label pointing to it
stating q 0 : 1Rq .
2 1
Slide 9: The tenth box is now 1. The eleventh boxfrom the left is red and
there is a label pointing to it stating q 0 : 0Rq .
1 2
Slide 5: The sixth box is now 1. The seventh box from the left is red and Figure 3 description
there is a label pointing to it stating q 0 : 0Rq .
1 2
A horizontal strip of concatenated boxed 0s and 1s with the left and right
Slide 6: The eighth box from the left is red and there is a label pointing to
ends of the strip being ragged. The numbers from left to right are
it stating q 0 : 1Rq .
2 1
00111101111100000000. The first 1 from the left is red with a label
pointing to it stating q : jRq .
1 1
Figure 4 description
This is an animation made up of 9 slides. All use the same horizontal strip
Slide 7: The eighth box is now 1. The ninth box from the left is red and of concatenated boxed containing either 0s or 1s with the left and right
there is a label pointing to it stating q 0 : 0Rq .
1 2 ends of the strip being ragged.
Slide 8: The tenth box from the left is red and there is a label pointing to it Slide 1: The numbers from left to right are 00111101111100000000. The
stating q 0 : 0Rq .
2 1 third box from the left, containing 1, is red and labeled q 1 : 0Rq .
1 2
Slide 2: The fourth box from the left, containing 1, is red and labeled Slide 6: The seventh box from the left is now 1. The eighth box from the
q 1 : 1Rq .
2 2 left, containing 1, is red and labeled q 1 : 1Lq .
3 3
Slide 3: The fifth box from the left, containing 1, is red and labeled Slide 7: The seventh box from the left, containing 1, is red and labeled
q 1 : 1Rq .
1 2 q 1 : 1Lq .
3 3
Slide 4: The sixth box from the left, containing 1, is red and labeled Slide 8: The sixth box from the left, containing 1, is red and labeled
q 1 : 1Rq .
1 2 q 1 : 1Lq .
3 3
Slide 5: The seventh box from the left, containing 0, is red and labeled Slide 9: The fifth box from the left, containing 1, is red and labeled
q 0 : 1Rq .
2 3 q 1 : 1Lq .
3 3