Turing machine
Abstract machine model that can implement any computer algorithm.
A Turing machine is an abstract device that manipulates symbols on an infinite strip of tape according to a fixed set of rules. Despite its simplicity, this mathematical model can carry out any computer algorithm. The machine consists of a tape divided into cells, each holding one symbol from a finite alphabet; a head that reads and writes symbols one cell at a time; and a finite set of internal states. At each step, the head reads the symbol in its current cell, then—based on that symbol and the machine's current state—writes a new symbol, moves the head left or right by one cell, or halts. A finite table dictates these actions for every combination of state and symbol. Like a real program, a Turing machine can enter an infinite loop and never halt.
Alan Turing invented the machine in 1936, originally calling it an "a-machine" (automatic machine). His doctoral advisor, Alonzo Church, later introduced the term "Turing machine" in a review. Using this model, Turing answered two questions in the negative: no machine can determine whether any arbitrary machine on its tape is "circular" (i.e., freezes or fails to continue), and no machine can determine whether any arbitrary machine ever prints a given symbol. By describing a simple device capable of arbitrary computation, he proved properties of computation in general—most notably the uncomputability of the Entscheidungsproblem (the decision problem of whether every mathematical statement is provable or disprovable). Turing machines thus demonstrated fundamental limits on mechanical computation.
Although they can express any computation, their minimalist design makes them too slow for practical use; real computers rely on different architectures, such as random-access memory. Turing completeness refers to a system’s ability to simulate a Turing machine. A programming language that is Turing complete can theoretically perform all tasks accomplishable by computers—nearly all programming languages are Turing complete if finite memory is ignored.
In operation, the machine functions like an idealized central processing unit with sequential memory, typically represented as an infinite tape for reading and writing. In formal language theory, a Turing machine can enumerate any arbitrary subset of valid strings from an alphabet; such a set is called a recursively enumerable language. Equivalently, it can recognize valid input strings rather than enumerating outputs. Given a Turing machine M and an arbitrary string s, it is generally impossible to decide whether M will eventually produce s, because the halting problem is unsolvable—a fact with major implications for computing’s theoretical limits.
A universal Turing machine can simulate any other Turing machine. Alonzo Church introduced lambda calculus, another formalism with similar universal properties. Church’s work and Turing’s together form the basis of the Church–Turing thesis, which holds that Turing machines, lambda calculus, and similar formalisms capture the informal notion of effective methods in logic and mathematics. This provides a precise, formalism-independent way to reason about algorithms. Studying the abstract properties of Turing machines has yielded many insights into computer science, computability theory, and complexity theory.
In his 1948 essay "Intelligent Machinery," Turing described the machine as having unlimited memory in the form of an infinite tape marked into squares, each of which can hold a symbol. At any moment, one symbol is scanned. The machine can alter that symbol, and its behavior is partly determined by it, while symbols elsewhere on the tape do not affect it. The tape can move back and forth through the machine, so any symbol may eventually have its turn. The machine operates deterministically according to a finite set of elementary instructions—for example, "in state 42, if the symbol seen is 0, write a 1; if the symbol seen is 1, change to state 17." In his original paper, Turing imagined not a mechanism but a person he called the "computer" executing these steps.
- inventor
- Alan Turing
- field
- Computer science, computability theory, complexity theory
- known_for
- Formalizing computation, proving uncomputability of the Entscheidungsproblem, establishing the Church–Turing thesis
- type
- Mathematical model of computation
Lore & Background
The Turing machine operates on an infinite memory tape divided into discrete cells, each holding a single symbol from a finite alphabet. It has a head that reads and writes symbols, and a state selected from a finite set of states. At each step, based on the current state and symbol read, the machine writes a symbol, moves the head left or right, or halts. The choice is determined by a finite table of rules. As with a real computer program, a Turing machine can go into an infinite loop that never halts. The machine was invented in 1936 by Alan Turing, who originally called it an "a-machine" (automatic machine); the term "Turing machine" was later coined by his doctoral advisor, Alonzo Church. Turing used this model to prove the uncomputability of the Entscheidungsproblem, or decision problem, demonstrating fundamental limitations on mechanical computation. A universal Turing machine is one that can simulate any other Turing machine. The Church–Turing thesis holds that Turing machines, lambda calculus, and similar formalisms capture the informal notion of effective methods in logic and mathematics. In formal language theory, a Turing machine can enumerate any recursively enumerable language, and it can equivalently be defined as a model that recognizes valid input strings rather than enumerating output strings. Due to the unsolvability of the halting problem, it is generally impossible to decide whether a given Turing machine will eventually produce a particular string.
Reader's Guide
The Turing machine is significant because it provided a mathematical description of a very simple device capable of arbitrary computations, enabling Turing to prove properties of computation in general. Using this model, Turing answered two questions in the negative: whether a machine can determine if any arbitrary machine on its tape is 'circular' (fails to continue its computational task), and whether a machine can determine if any arbitrary machine ever prints a given symbol. This proved the uncomputability of the Entscheidungsproblem, or 'decision problem' (whether every mathematical statement is provable or disprovable). Turing machines proved the existence of fundamental limitations on the power of mechanical computation. While they can express arbitrary computations, their minimalist design makes them too slow for practical computation; real-world computers use random-access memory. Turing completeness is the ability for a model of computation to simulate a Turing machine, and nearly all programming languages are Turing complete if finite memory limitations are ignored. The Church–Turing thesis states that Turing machines, lambda calculus, and similar formalisms capture the informal notion of effective methods in logic and mathematics.
Did You Know?
- Alan Turing called his invention an 'a-machine' (automatic machine); the term 'Turing machine' was coined by his doctoral advisor Alonzo Church.
- A Turing machine that can simulate any other Turing machine is called a universal Turing machine.
- The halting problem for Turing machines is unsolvable, meaning it is generally not possible to decide whether a given machine will eventually halt on a given input.
- Turing imagined not a mechanism but a person he called the 'computer' who executes deterministic mechanical rules slavishly.
Origins and the Boundaries of Computation
It was his doctoral advisor, Alonzo Church, who later settled on the now-familiar name "Turing machine" in a review of the work. The model's purpose was not merely to describe a device but to settle deep questions about what computation could and could not achieve. Turing used it to answer two questions in the negative: no machine can determine whether an arbitrary machine will freeze or fail to complete its task, and no machine can determine whether an arbitrary machine will ever print a particular symbol. These negative results carried a profound consequence — they demonstrated the uncomputability of the Entscheidungsproblem, the so-called decision problem asking whether every mathematical statement can be proven or disproven. In essence, a deceptively simple abstract device became the vehicle for proving that fundamental limitations exist on the power of mechanical computation.
The Anatomy of an Abstract Machine
The Turing machine's architecture is deliberately austere. It operates on an infinite tape divided into discrete cells, each holding a single symbol drawn from a finite alphabet. A read-write head sits over exactly one cell at any given moment, and the machine maintains a current state chosen from a finite set. At every step, the head reads the symbol beneath it, and a finite lookup table — specifying what to do for every possible combination of state and symbol — dictates the next action: write a new symbol into that cell, shift the head one position left or right, or halt entirely. Yet despite this minimalism, the model can implement any computer algorithm. One notable caveat, shared with real programs, is that a Turing machine can enter an infinite loop and never halt.
Universality and the Church-Turing Thesis
A particularly powerful concept emerging from Turing's work is the universal Turing machine — a single machine capable of simulating the behavior of any other Turing machine, given an appropriate description of that machine on its tape. This universality found a parallel in Alonzo Church's lambda calculus, another formalism with a similar "universal" character. The convergence of these two independent approaches gave rise to the Church-Turing thesis, which asserts that Turing machines, lambda calculus, and other comparable formalisms collectively capture the informal notion of effective methods in logic and mathematics. In practical terms, this means one can reason about algorithms and mechanical procedures in a mathematically rigorous way without being locked into any single formalism. In the context of formal language theory, a Turing machine can enumerate arbitrary subsets of valid strings over an alphabet, a set known as a recursively enumerable language. Equivalently, it can be defined as a model that recognizes valid input strings rather than generating output. Studying the abstract properties of these machines has yielded deep insights across computer science, computability theory, and complexity theory.
Turing Completeness and Practical Reach
The concept of Turing completeness extends the influence of Turing's model far beyond the theoretical. A system of instructions or a model of computation is said to be Turing complete when it can simulate a Turing machine, meaning it is theoretically capable of expressing every task that computers can accomplish. Nearly all programming languages meet this criterion, provided one ignores the practical limitation of finite memory. This makes Turing completeness a kind of benchmark: it signals that a language or system is not artificially constrained in its expressive power. The Turing machine itself serves as an idealized model of a central processing unit, the component that governs all data manipulation in a computer, with sequential memory standing in for the storage medium. However, the model's sequential nature and lack of random access make it impractically slow for real computation. Furthermore, the halting problem — the proven impossibility of deciding whether a given machine will eventually produce a particular output — imposes hard theoretical limits that no amount of engineering can overcome. These constraints define the outer boundary of what mechanical computation can achieve.
Frequently Asked Questions
What is a Turing machine?
A Turing machine is an abstract mathematical model of computation: a hypothetical device that reads, writes, and moves along an infinite strip of tape by following a fixed table of transition rules. Despite how minimal the design is, it can simulate the logic of any algorithm a real computer could execute.
Who created the Turing machine?
The model was devised by Alan Turing in the early 1930s as part of his investigation into the Entscheidungsproblem. It sits at the crossroads of computer science, computability theory, and complexity theory.
What are the Turing machine's core powers?
Its defining capability is universality: one suitably programmed machine can replicate the behavior of any other, which underpins the Church–Turing thesis. It also gave a rigorous framework for proving that certain problems, such as the halting problem, are fundamentally uncomputable.
Why is the Turing machine considered so important?
It turned the vague intuition of 'mechanical calculation' into a precise, formal notion of computability, giving mathematicians a clear yardstick for what can and cannot be solved by algorithm. Without that foundation, landmark results like the uncomputability proof for the Entscheidungsproblem would lack a shared reference point.
Who actually coined the name 'Turing machine'?
It was not Turing himself but his doctoral advisor, Alonzo Church, who introduced the phrase in a later review of Turing's paper. The label stuck and became the standard term used throughout the field.
More in Mathematical Logic And Computation 1-21
Spotted an error? Know more?
This is a living reference — every entry is fact-audited, and reader corrections feed straight into our audit queue. Suggest an edit · See this site's audit record
