# Turing machine

A **Turing machine** is an abstract computer (ironically, created before the first real computer), devised by mathematician Alan Turing in 1936, to develop theories of *computability* -- that which can, and which cannot, be computed.

The classic introduction to this kind of machine is MIT professor Marvin Minksy's *Computation: Finite and Infinite Machines* (Prentice-Hall 1967):

A Turing machine is a finite-state machine associated with an external storage or memory medium. This medium has the form of a sequence of

squares, marked of on a lineartape. The machine is couple to the tape through ahead, which is situated, at each moment, on some square of the tape (see fig). The head has three functions, all of which are exercised in each operation cycle of the finite-state machine. The functions are:readingthe square of the tape beingscanned,writingon the scanned square, andmovingthe machine to an adjacent square (which becomes the scanned square in the next operation cycle).

The basic operation is that each square can have a single symbol from a finite set of symbols; each step possibly changes the symbol and moves the tape to the left or the right.

They are comprehensively covered in computing literature, with endless variations, including a large number of physical implementations.

A number of very important theoretical results came from study of these machines:

- A Turing machine is adequate to simulate any other kind of automata, ignoring specified size and speed constraints.
- A machine which can simulate a Turing machine can therefore simulate
*any*machine and is said to be**Turing complete**.

## See also

## External links

- Turing Machines - good lecture notes on the topic, and the environment in which it was create
- A Turing Machine - wonderful site about an actual Turing machine, with a lot of detail
- Lego of Doom - a Turing machine built out of Lego