GNOME Turing Machine simulator user guide.
Prev |  | Next

# What is a Turing machine?

There are several ways to define the Turing machine, all of them equivalent. The definition used by gturing is as follows. A Turing machine consists of two parts:

- The tape, which contains the data. The tape is infinite in both directions; it is divided in cells, and each cell can contain a symbol from some fixed finite set (for gturing, any printable ASCII symbol). The tape has an infinite sequence of spaces at each end.

- The head, which plays the role of the computing device, moves along the tape. At every moment, it is placed at one of the tape's cells. The head can move along the tape in both directions and read and write symbols on it. Also, there is a notion of the head's "internal states": at any moment, the head is in one of these states, and it can change from one to the other.

To make the machine work, you must also give it a set of rules, which determine the operations it should perform depending on the current symbol it reads from the tape and the head's state. Typical rule can be "`If the symbol read is 1 and the internal state is 0, change the current symbol on the tape for a space, move to the left, and change the internal state to 3`". Formal description of the rules can be found in the section called Program File Format. You can think of the set of rules as a "program" for the Turing machine.

If you want to know more about Turing Machines, check this Turing Machine Introduction.

Prev | Home | Next
GNOME Turing Machine simulator user guide. |  | Using gturing