# Turing machine

A Turing machine is an abstract model of computer execution and storage introduced in 1936 by
Alan Turing to give a mathematically precise definition
of algorithm. A Turing machine can be
thought of as a black box that carries out a calculation of some kind on
an input number. If the calculation reaches a conclusion, or halts, then
an output number is returned. Otherwise, the machine theoretically carries
on forever. There are an infinite number of Turing machines, as there are
an infinite number of calculations that can be done with a finite list of
rules. A Turing machine that can simulate any other Turing machine is called
a **universal Turing machine**. The concept of Turing machines
is still widely used in theoretical computer science, especially in complexity theory and the theory of computation.