All Topics  
Turing machine

 
Turing Machine

   Email Print
   Bookmark   Link






 

Turing machine



 
 
Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer
Computer

A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
 algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
. They were described in 1936 by Alan Turing
Alan Turing

Alan Mathison Turing, Order of the British Empire, Fellow of the Royal Society was a British mathematician, logician and Cryptanalysis....
. Turing machines are not intended as a practical computing technology, but a thought experiment
Thought experiment

A thought experiment , sometimes called a Gedanken experiment, is a proposal for an experiment that would test or illuminate a hypothesis or theory....
 about the limits of mechanical computation. Thus they were not actually constructed. 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 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, as a branch of the theory of computation in computer science, investigates the problems related to the Computational resource required for the execution of algorithms , and the inherent difficulty in providing efficient algorithms for specific computational problems....
.

A Turing machine that is able to simulate any other Turing machine is called a Universal Turing machine
Universal Turing machine

Alan Turing's universal computing machine is the name given by him to his model of an all-purpose "a-machine" that could "run" any arbitrary sequence of instructions called "quintuples"....
 (UTM, or simply a universal machine).






Discussion
Ask a question about 'Turing machine'
Start a new discussion about 'Turing machine'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer
Computer

A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
 algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
. They were described in 1936 by Alan Turing
Alan Turing

Alan Mathison Turing, Order of the British Empire, Fellow of the Royal Society was a British mathematician, logician and Cryptanalysis....
. Turing machines are not intended as a practical computing technology, but a thought experiment
Thought experiment

A thought experiment , sometimes called a Gedanken experiment, is a proposal for an experiment that would test or illuminate a hypothesis or theory....
 about the limits of mechanical computation. Thus they were not actually constructed. 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 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, as a branch of the theory of computation in computer science, investigates the problems related to the Computational resource required for the execution of algorithms , and the inherent difficulty in providing efficient algorithms for specific computational problems....
.

A Turing machine that is able to simulate any other Turing machine is called a Universal Turing machine
Universal Turing machine

Alan Turing's universal computing machine is the name given by him to his model of an all-purpose "a-machine" that could "run" any arbitrary sequence of instructions called "quintuples"....
 (UTM, or simply a universal machine). A more mathematically-oriented definition with a similar "universal" nature was introduced by Alonzo Church
Alonzo Church

Alonzo Church was an United States mathematician and list of logicians who made major contributions to mathematical logic and the foundations of theoretical computer science....
, whose work on lambda calculus
Lambda calculus

In mathematical logic and computer science, lambda calculus, also written as ?-calculus, is a formal system designed to investigate function definition, function application and recursion....
 intertwined with Turing's in a formal theory of computation
Computation

Computation is a general term for any type of information processing. This includes phenomena ranging from human thinking to calculations with a more narrow meaning....
 known as the Church-Turing thesis. The thesis states that Turing machines indeed capture the informal notion of effective method in logic
Logic

Logic is the study of the principles of valid demonstration and inference. Logic is a branch of philosophy, a part of the classical Trivium . The word derives from Greek language ?????? , fem....
 and mathematics
Mathematics

Mathematics is the study of quantity, structure, space, change, and related topics of pattern and form. Mathematicians seek out patterns whether found in numbers, space, natural science, computers, imaginary abstractions, or elsewhere....
, and provide a precise definition of an algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
 or 'mechanical procedure'.

Informal description

For visualizations of Turing machines, see Turing machine gallery
Turing machine gallery

The following article is a supplement to the article Turing machine....
.


The Turing machine
Turing machine

Turing machines are basic abstract symbol-manipulating devices which, despite their simplicity, can be adapted to simulate the logic of any computer algorithm....
 mathematically models a machine that mechanically operates on a tape on which symbols are written, which it 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 references below), Turing imagines not a mechanical machine, 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:
  1. 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 '0') 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. The symbols are sometimes referred to as colors.
  2. 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.
  3. A finite TABLE ("action table", or transition function) of instructions (usually quintuples [5-tuples] : qiaj?qi1aj1dk, but sometimes 4-tuples) that, given the state(qi) the machine is currently in and the symbol(aj) it is reading on the tape(symbol currently under HEAD) tells the machine to do the following in sequence (for the 5-tuple models):
    • Either erase or write a symbol (instead of aj written aj1), and then
    • Move the head (which described by dk and can have values: 'L' for one step left or 'R' for one step right or 'H' for staying in the same place), and then
    • Assume the same or a new state as prescribed (go to state qi1).
      In the 4-tuple models 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.
  4. A STATE REGISTER that stores the state of the Turing table, 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 symbol-collections — 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, devices, and recording medium that retain digital data used for computing for some interval of time....
.

Examples of Turing machines

To see examples of the following models, see Turing machine examples
Turing machine examples

The following are examples to supplement the article Turing machine....
:

  1. Turing's very first machine
  2. Copy routine
  3. 3-state busy beaver
    Busy beaver

    In Computability theory , a busy beaver is a Turing machine which, when started on an empty tape, runs as long as possible, but eventually halting problem....


Formal definition


Hopcroft and Ullman (1979, p. 148) formally define a (one-tape) Turing machine as a 7-tuple
Tuple

In mathematics, a tuple is a sequence of a specific number of values, called the components of the tuple. These components can be any kind of mathematical objects, where each component of a tuple is a value of a specified type....
  where
  • is a finite set of states
  • is a finite 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 a partial function
    Partial function

    In mathematics, a partial function is a binary relation that associates each element of a Set , sometimes called its domain , with at most one element of another set, called its codomain....
     called the transition function
    Transition function

    In 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.)
  • is the initial state
  • is the set of final or accepting states.
Anything that operates according to these specifications is a Turing machine.

The 7-tuple for the 3-state busy beaver
Busy beaver

In Computability theory , a busy beaver is a Turing machine which, when started on an empty tape, runs as long as possible, but eventually halting problem....
 looks like this (see more about this busy beaver at Turing machine examples
Turing machine examples

The following are examples to supplement the article Turing machine....
):
Q =
G =
b = 0 = "blank"
S =
d = see state-table below
q0 = A = initial state
F = the one element set of final states


Initially all tape cells are marked with 0.

State table for 3 state, 2 symbol busy beaver
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 set-theoretical object [his formal seven-tuple 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 pre-filled 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.


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 "No-operation") 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 5-tuples, per the convention of Turing/Davis (Turing (1936) in Undecidable, p. 126-127 and Davis (2000) p. 152):

(definition 1): (qi, Sj, Sk/E/N, L/R/N, qm)
( current state qi , symbol scanned Sj , print symbol Sk PSk/erase E/none N , move_tape_one_ square left L/right R/None N , new state qm )

Other authors (Minsky (1967) p. 119, Hopcroft and Ullman (1979) p. 158, Stone (1972) p. 9) adopt a different convention, with new state qm listed immediately after the scanned symbol Sj:
(definition 2): (qi, Sj, qm, Sk/E/N, L/R/N)
( current state qi, symbol scanned Sj , new state qm , print symbol Sk PSk/erase E/none N , move_tape_one_square left L/none N/right R )

For remainder of this article "definition 1" (the Turing/Davis convention) will be used.

Example: state table for the 3-state 2-symbol busy beaver reduced to 5-tuples
Current state Scanned symbol Print symbol Move tape Final (i.e. next) state 5-tuples
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 S0 = "erase" or "blank", etc. However, he did not allow for non-printing, so every instruction-line includes "print symbol Sk" 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, machine-models have allowed all nine possible types of five-tuples:

  Current m-configuration (Turing state) Tape symbol Print-operation Tape-motion Final m-configuration (Turing state) 5-tuple 5-tuple comments  4-tuple
N1 qi Sj Print(Sk) Left L qm (qi, Sj, Sk, L, qm) "blank" = S0, 1=S1, etc.  
N2 qi Sj Print(Sk) Right R qm (qi, Sj, Sk, R, qm) "blank" = S0, 1=S1, etc.  
N3 qi Sj Print(Sk) None N qm (qi, Sj, Sk, N, qm) "blank" = S0, 1=S1, etc.  (qi, Sj, Sk, qm)
          
4 qi Sj None N Left L qm (qi, Sj, N, L, qm)   (qi, Sj, L, qm)
5 qi Sj None N Right R qm (qi, Sj, N, R, qm)   (qi, Sj, R, qm)
6 qi Sj None N None N qm (qi, Sj, N, N, qm) Direct "jump"  (qi, Sj, N, qm)
7 qi Sj Erase Left L qm (qi, Sj, E, L, qm)   
8 qi Sj Erase Right R qm (qi, Sj, E, R, qm)   
9 qi Sj Erase None N qm (qi, Sj, E, N, qm)   (qi, Sj, E, qm)


Any Turing table (list of instructions) can be constructed from the above nine 5-tuples. For technical reasons, the three non-printing or "N" instructions (4, 5, 6) can usually be dispensed with. For examples see Turing machine examples
Turing machine examples

The following are examples to supplement the article Turing machine....
.

Less frequently the use of 4-tuples are encountered: these represent a further atomization of the Turing instructions (cf Post (1947), Boolos & Jeffrey (1974, 1999), Davis-Sigal-Weyuker (1994)); also see more at Post-Turing machine
Post-Turing machine

A Post?Turing machine is a "program formulation" of an especially simple type of Turing machine, comprising a variant of Emil Post's Turing completeness model of computation described below....
.

The "state"

The word "state" used in context of Turing machines can be a source of confusion. 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 "m-configuration", and the machine's (or person's) "state of progress" through the computation. 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 "m-configuration"—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 state-label/m-configuration 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 well-formed formula of some formal language a unique natural number, called its G?del number....
 of a machine's "situation": he places the "m-configuration" symbol q4 over the scanned square in roughly the center of the 6 non-blank squares on the tape (see the Turing-tape figure in this article) and puts it to the right of the scanned square. But Kleene refers to "q4" itself as "the machine state" (Kleene, p. 374-375). Hopcroft and Ullman call this composite the "instantaneous description" and follow the Turing convention of putting the "current state" (instruction-label, m-configuration) to the left of the scanned symbol (p.149).

Example: total state of 3-state 2-symbol 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 right-most 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


The table for the 3-state busy beaver ("P" = print/write a "1")
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


State Diagram 3 State Busy Beaver 2b
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 finite state machine or finite state automaton or simply a state machine, is a model of behavior composed of a finite number of state s, transitions between those states, and actions....
 for more.

State Diagram 3 State Busy Beaver 4
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 state-trajectory, this is not true for the "copy" machine that can be provided with variable input "parameters".

The diagram "Progress of the computation" shows the 3-state 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 thesis 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 state machine that can make use of a Stack containing data....
 made more flexible and concise by relaxing the last-in-first-out requirement of its stack. (Interestingly, this seemingly minor relaxation enables the Turing machine to perform such a wide variety of computations that it can serve as a clearer model for the computational capabilities of all modern computer software.)

At the other extreme, some very simple models turn out to be Turing-equivalent
Turing completeness

In Computability theory , several closely-related terms are used to describe the "computational power" of a computational system :Turing completenessTuring equivalence universality...
, i.e. to have the same computational power as the Turing machine model.

Common equivalent models are the multi-tape Turing machine, multi-track Turing machine
Multi-track Turing machine

A Multitrack Turing machine is a specific type of Multi-tape Turing machine. In a standard n-tape Turing machine, n heads move independently along n tracks....
, machines with input and output, and the non-deterministic Turing machine
Non-deterministic 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.

Read only right moving Turing Machines
Read only right moving Turing Machines

A particular type of Turing Machine. The definition based on a single infinite tape defined to be a 7-tuple where* is a finite set of states...
 are equivalent to NDFA's
Nondeterministic finite state machine

In the theory of computation, a nondeterministic finite state machine or nondeterministic finite automaton is a finite state machine where for each pair of state and input symbol there may be several possible next states....
 (as well as DFA's
Deterministic finite state machine

In the theory of computation, a deterministic automaton finite state machine is a finite state machine where for each pair of state and input symbol there is one and only one transition to a next state....
 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 low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture....
 programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
.

Choice c-machines, Oracle o-machines

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 excepting a footnote in which he describes how to use an a-machine 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 i1, i2, ..., in (i1 = 0 or 1, i2 = 0 or 1, ..., in = 0 or 1), and hence the number 2n + i12n-1 + i22n-2 + ... +in 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 computational 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....
 or o-machine is a Turing a-machine 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 stored program computer
Computer

A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
.

As part of his book A New Kind of Science
A New Kind of Science

A New Kind of Science is a controversial book by Stephen Wolfram, published in 2002. It contains an empirical and systematic study of computational systems such as cellular automata....
, Stephen Wolfram
Stephen Wolfram

Stephen Wolfram is a British physicist, mathematician and businessman known for his work in theoretical particle physics, cosmology, cellular automaton, complexity theory, and computer algebra....
 announced his discovery of a 2-state 5-symbol universal Turing machine. Wolfram's example was the smallest universal Turing machine then known since it has the smallest product (2,5)=10 of any known universal Turing machine. Other small (weak/semi-weak) universal Turing machines were found by Watanabe, Rogozin, Morgenstern and more recently Neary and Woods, these last authors also showing no threshold between computational complexity and program-size since all of them turned out to be computationally efficient. Whether there is any threshold remains an open question.

On May 14th, 2007, Wolfram announced a US$25,000 prize for the proof or disproof of the conjecture that an even simpler, 2-state 3-symbol Turing machine
Wolfram's 2-state 3-symbol Turing machine

In his A New Kind of Science, Stephen Wolfram found a universal 2-state 5-color Turing machine, and conjectured that a particular 2-state 3-color Turing machine might be universal Turing machine as well....
 is universal. On 2007-10-24, the prize was won by Alex Smith, an undergraduate studying Electronic and Computer Engineering at the University of Birmingham, UK. However, on 2007-10-29 Vaughan Pratt of Stanford University
Stanford University

Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is a private university research university located in Stanford, California, California, United States....
 announced he had discovered a flaw in the proof. Wolfram Research disputed Pratt's interpretation.

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 deterministic finite automaton. 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:

  1. 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 parameter-passing mechanisms" (Hopcroft and Ullman p. 157). A large enough FSA can also model any real computer, disgarding IO. Thus, a statement about the limitations of Turing machines will also apply to real computers.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Turing machines simplify the statement of algorithms. Algorithms running on Turing-equivalent abstract machines are usually more general than their counterparts running on real machines, because they have arbitrary-precision 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 an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s and word processor
Word processor

A word processor is a computer Application software used for the production of any sort of printable material.Word processor may also refer to an obsolete type of stand-alone office machine, popular in the 1970s and 80s, combining the keyboard text-entry and printing functions of an electric typewriter with a dedicated computer for th...
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).

Limitations of Turing machines in computational complexity theory

A limitation of Turing Machines is that they do not model the strengths of a particular arrangement well. For instance, modern stored-program computers are actually instances of a more specific form of abstract machine
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....
 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 Algorithmic complexity theory ....
 or RASP machine model. Like the Universal Turing machine
Universal Turing machine

Alan Turing's universal computing machine is the name given by him to his model of an all-purpose "a-machine" that could "run" any arbitrary sequence of instructions called "quintuples"....
 the RASP stores its "program" in "memory" external to its finite-state 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 Cook-Rechow (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 finite-state 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 register-sequence. 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.

History


Historical background: computational machinery


Robin Gandy
Robin Gandy

Robin Oliver Gandy was a United Kingdom 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....
—a student of Alan Turing
Alan Turing

Alan Mathison Turing, Order of the British Empire, Fellow of the Royal Society was a British mathematician, logician and Cryptanalysis....
 (1912–1954) and his life-long 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, an important step in the history of computers, was the design of a mechanical general-purpose computer by the British mathematician Charles Babbage....
 describes the following five operations (cf p. 52–53):
  1. The arithmetic functions +, -, x where - indicates "proper" subtraction x - y = 0 if y >= x
  2. Any sequence of operations is an operation
  3. Iteration of an operation (repeating n times an operation P)
  4. Conditional iteration (repeating n times an operation P conditional on the "success" of test T)
  5. Conditional transfer (i.e. conditional "goto
    GOTO

    GOTO is a statement found in many computer programming languages. It is a combination of the English words wiktionary:go and wiktionary:to....
    ")


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 , usually Leonardo Torres Quevedo in Spanish language-speaking countries, was a Spanish people engineer and mathematician of the late nineteenth and early twentieth centuries....
 (1914), M. d'Ocagne (1922), Louis Couffignal
Louis Couffignal

Louis Couffignal was a France Mathematics and Cybernetics pioneer. He taught in schools in the southwest of Brittany, then at the naval academy and, eventually, at the Buffon School....
 (1933), Vannevar Bush
Vannevar Bush

Vannevar Bush was an United States engineer and science administrator known for his work on analog computer, his political role in the development of the atomic bomb, and the idea of the memex, which was seen decades later as a pioneering concept for the World Wide Web....
 (1936), Howard Aiken
Howard Aiken

Howard Hathaway Aiken was a pioneer in computing, being the primary engineer 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 problems
Hilbert's problems

Hilbert's problems are a list of twenty-three problems in mathematics put forth by Germany mathematician David Hilbert at the Paris conference of the International Congress of Mathematicians in 1900....
 posed by the famous mathematician David Hilbert
David Hilbert

David Hilbert was a Germany mathematician, recognized as one of the most influential and universal mathematicians of the 19th and early 20th centuries....
 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 Entscheidungsproblem is a challenge posed by David Hilbert in 1928. The Entscheidungsproblem 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.Behmann studied mathematics in T?bingen, Leipzig and G?ttingen....
 stated that

By the 1928 international congress of mathematicians Hilbert "made his questions quite precise. First, was mathematics complete
Completeness

In general, an object is complete if nothing needs to be added to it. This notion is made more specific in various fields....
 ... 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....
 ... And thirdly, was mathematics decidable
Decidability (logic)

In logic, the term decidable refers to 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 logical validity formulas can be effectively determined....
?" (Hodges p. 91, Hawking p. 1121). The first two questions were answered in 1930 by Kurt Gödel
Kurt Gödel

Kurt G?del was an Austrian-United States logician, mathematician and philosopher. One of the most significant logicians of all time, G?del made an immense impact upon scientific and philosophical thinking in the 20th century, a time when many, such as Bertrand Russell, A....
 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 mid-1930s.

The problem was that an answer first required a precise definition of "definite general applicable prescription", which Alonzo Church
Alonzo Church

Alonzo Church was an United States mathematician and list of logicians who made major contributions to mathematical logic and the foundations of theoretical computer science....
 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 Princeton professor Church and his two students Stephen Kleene and J. B. Rosser by use of Church's lambda-calculus and Gödel's recursion theory
Recursion theory

Recursion theory, also called computability theory, is a branch of mathematical logic that originated in the 1930s with the study of computable functions and Turing degrees....
 (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 lambda-calculus 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 effectively calculable functions by recursion , by mechanical device equivalent to a Turing machine or by use of Church's Lambda calculus:...
 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 life-long 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 Boolean-logic 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 self-contained, and its roots lay not in the EDVAC
EDVAC

EDVAC was one of the earliest electronics computers. Unlike its predecessor the ENIAC, it was binary numeral system rather than decimal, and was a Von Neumann architecture machine....
 [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 computational-machine 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 (Boolean-logic) 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 relay-operated switches ..." (Hodges p. 138). While Turing might have been just curious and experimenting, quite-earnest work in the same direction was going in Germany (Konrad Zuse
Konrad Zuse

Konrad Zuse was a Germany Civil engineering and computer pioneer. His greatest achievement was the world's first functional program-controlled Turing-complete computer, the Z3 , in 1941 ....
 (1938)), and in the United States (Howard Aiken
Howard Aiken

Howard Hathaway Aiken was a pioneer in computing, being the primary engineer behind IBM's Harvard Mark I computer....
) and George Stibitz
George Stibitz

George Robert Stibitz is internationally recognized as a father of the modern digital computer. He was a Bell Labs researcher known for his 1930s and 1940s work on the realization of Boolean logic digital circuits using electromechanical relays as the switching element....
 (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 mid-1950s Hao Wang and Marvin Minsky
Marvin Minsky

Marvin Lee Minsky is an United States Cognitive Science in the field of artificial intelligence , co-founder of Massachusetts Institute of Technology's AI laboratory, and author of several texts on AI and philosophy....
 reduced the Turing machine to a simpler form (a precursor to the Post-Turing machine
Post-Turing machine

A Post?Turing machine is a "program formulation" of an especially simple type of Turing machine, comprising a variant of Emil Post's Turing completeness model of computation described below....
 of Martin Davis
Martin Davis

Martin Davis, is an Jewish-United States 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 ....
); simultaneously European researchers were reducing the new-fangled electronic computer to a computer-like theoretical object equivalent to what was now being called a "Turing machine". In the late 1950s and early 1960s, the coincidentally-parallel 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, computer-like abstract model called the counter machine
Counter machine

A computational model used in formal logic and theoretical computer science, the counter machine is the most primitive sub-class of the generic register machine models....
; 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 multi-tape Turing machines with an arithmetic-like instruction set.

1970–present: the Turing machine as a model of computation


Today the counter, register and random-access machines and their sire the Turing machine continue to be the models of choice for theorists investigating questions in the theory of computation
Theory of computation

The theory of computation is the branch of computer science 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, as a branch of the theory of computation in computer science, investigates the problems related to the Computational resource required for the execution of algorithms , and the inherent difficulty in providing efficient algorithms for specific computational problems....
 makes use of the Turing machine:

See also

  • Turing switch
    Turing switch

    The 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....
  • Algorithm
    Algorithm

    In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
    , for a brief history of some of the inventions and the mathematics leading to Turing's definition of what he called his "a-machine"
  • Busy beaver
    Busy beaver

    In Computability theory , a busy beaver is a Turing machine which, when started on an empty tape, runs as long as possible, but eventually halting problem....
  • Church-Turing thesis, which says Turing machines can perform any computation that can be performed
  • Conway's Game of Life
    Conway's Game of Life

    The Game of Life, also known simply as Life, is a cellular automaton devised by the United Kingdom mathematician John Horton Conway in 1970....
    , a Turing-complete cellular automaton
  • Halting problem
    Halting problem

    In computability theory , the halting problem is a decision problem which can be stated as follows: given a description of a computer program and a finite input, decide whether the program finishes running or will run forever, given that input....
    , for more references
  • Harvard architecture
    Harvard architecture

    The Harvard architecture is a computer architecture with physically separate computer storage and signal pathways for instructions and data. The term originated from the Harvard Mark I relay-based computer, which stored instructions on punched tape and data in electro-mechanical counters ....
  • Modified Harvard architecture
    Modified Harvard architecture

    The Modified Harvard Architecture is a variation of the Harvard architecture that allows the contents of the instruction memory to be accessed as if it were data....
  • Langton's ant
    Langton's ant

    Langton's ant is a two-dimensional Turing machine with a very simple set of rules but complicated Emergence behavior. It was invented by Chris Langton in 1986....
    , a simple two-dimensional analogue of the Turing machine.
  • Arithmetical hierarchy
    Arithmetical hierarchy

    In mathematical logic, the arithmetical hierarchy, arithmetic hierarchy or Kleene hierarchy classifies certain sets based on the complexity of formulas that define them....
  • Probabilistic Turing machine
    Probabilistic Turing machine

    In computability theory, a probabilistic Turing machine is a non-deterministic Turing machine which randomly chooses between the available transitions at each point according to some probability distribution....
  • Quantum Turing machine
    Quantum Turing machine

    A Quantum Turing machine 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....
  • Turing completeness
    Turing completeness

    In Computability theory , several closely-related terms are used to describe the "computational power" of a computational system :Turing completenessTuring equivalence universality...
    , an attribute used in computability theory to describe computing systems with power equivalent to a universal Turing machine.
  • Turing tarpit
    Turing tarpit

    Turing tarpit is a general term for a programming language designed to be Turing-complete while in some sense simplifying to the greatest extent possible both the syntax and the semantics of the language....
    , any computing system or language which, despite being Turing complete, is generally considered useless for practical computing.
  • Von Neumann architecture
    Von Neumann architecture

    The von Neumann architecture is a design model for a stored-program digital computer that uses a central processing unit and a single separate computer storage structure to hold both instructions and data ....
  • Chaitin constant or Omega (computer science) for information relating to the halting problem
  • Gödel, Escher, Bach: An Eternal Golden Braid, an influential book largely about the Church-Turing Thesis.


Further Reading

  • Brunfiel, Geoff, , Nature, October 24. 2007.
  • Some parts have been significantly rewritten by Burgess. Presentation of Turing machines in context of Lambek "abacus machines" (cf 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 recursive function
    Recursive function

    Recursive function may refer to:* Recursion : a procedure or subroutine, implemented in a programming language, whose implementation references itself...
    s, 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.
  • B. Jack Copeland
    Jack Copeland

    B. Jack Copeland is Professor of Philosophy at the University of Canterbury, Christchurch, New Zealand, New Zealand.Copeland received a BPhil and DPhil from the University of Oxford in philosophy, where he undertook research on modal logic and non-classical logic....
     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 0-19-825079-7. 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
. On pages 12-20 he gives examples of 5-tuple tables for Addition, The Successor Function, Subtraction (x > = y), Proper Subtraction (0 if x < y), The Identity Function and various identity functions, and Multiplication.
  • Martin Davis
    Martin Davis

    Martin Davis, is an Jewish-United States 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 ....
     (ed.) (1965), The Undecidable, Raven Press, Hewlett, NY.
  • Jim Giles, , New Scientist, October 24, 2007.
  • Robin Gandy
    Robin Gandy

    Robin Oliver Gandy was a United Kingdom 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....
    , "The Confluence of Ideas in 1936", pp.51–102 in Rolf Herken, see below.
. On pages 90–103 Hennie discusses the UTM with examples and flow-charts, but no actual 'code'.
  • Stephen Hawking
    Stephen Hawking

    Stephen William Hawking Companion of Honour, Commander of the British Empire, Fellow of the Royal Society, Fellow of the Royal Society of Arts, Doctor of Philosophy is a British Theoretical physics....
     (editor), 2005, God Created the Integers: The Mathematical Breakthroughs that Changed History, Running Press, Philadelphia, ISBN-13: 978-0-7624-1922-7. Includes Turing's 1936–1937 paper, with brief commentary and biography of Turing as written by Hawking.
  • Andrew Hodges
    Andrew Hodges

    Andrew 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 Penrose....
    , 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.
A difficult book. Centered around the issues of machine-interpretation of "languages", NP-Completeness, 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.
  • Marvin Minsky
    Marvin Minsky

    Marvin Lee Minsky is an United States Cognitive Science in the field of artificial intelligence , co-founder of Massachusetts Institute of Technology's AI laboratory, and author of several texts on AI and philosophy....
    , 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.
  • 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.
  • , Romanian Journal Of Information Science and Technology, 1(3), 259–265, 1998. (surveys known results about small universal Turing machines)
Chapter 3: The Church-Turing Thesis, pp.125–149. (and ). Reprinted in many collections, e.g. in The Undecidable pp.115–154; available on the web in many places, e.g. .
  • Peter van Emde Boas 1990, Machine Models and Simulations, pp. 3–66, in Jan van Leeuwen, ed., Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity, The MIT Press/Elsevier, [place?], ISBN 0-444-88071-2 (Volume A). QA76.H279 1990. Valuable survey, with 141 references.
  • Hao Wang, "A variant to Turing's theory of computing machines", Journal of the Association for Computing Machinery (JACM) 4, 63–92 (1957).
  • Stephen Wolfram
    Stephen Wolfram

    Stephen Wolfram is a British physicist, mathematician and businessman known for his work in theoretical particle physics, cosmology, cellular automaton, complexity theory, and computer algebra....
    , , Wolfram Media, ISBN 1-57955-008-8
  • Charles Petzold
    Charles Petzold

    Charles Petzold is an United States programmer and technical author on Microsoft Windows applications. He is also a Microsoft Most Valuable Professional....
    , , John Wiley & Sons, Inc., ISBN 0-47022-905-5


External links

  • (Stanford Encyclopedia of Philosophy)
  • in Molecular Biology, to understand life mechanisms with a DNA-tape processor.
  • —Summary about the Turing machine, its functionality and historical facts
  • Private web site concludes that the cosmos cannot be represented as a Turing computation.
  • —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.
  • by Paul Rendell
  • "" by Enrique Zeleny, Wolfram Demonstrations Project
    Wolfram Demonstrations Project

    The Wolfram Demonstrations Project is a website developed by Wolfram Research, whose stated goal is to bring computational exploration to the widest possible audience....
    .