A Turing Machine

Quick Introduction

In Alan Turing’s 1936 paper on computable numbers,
he presented a thought experiment. Turing describes a machine
that has an infinitely long tape upon which it writes, reads
and alters symbols. He further shows that a machine with the
correct minimal set of operations can calculate anything that
is computable, no matter the complexity.

My
goal in building this project was to create a machine that
embodied the classic look and feel of the machine presented
in Turing’s paper. I wanted to build a machine that would
be immediately recognizable as a Turing machine to someone familiar
with Turing's work.

Although this Turing machine is controlled by a Parallax Propeller
microcontroller, its operation while running is based only
on a set of state transformations loaded from an SD card and
what is written to and read from the tape. While it may seem
as if the tape is merely the input and output of the machine,
it is not! Nor is the tape just the memory of the machine.
In a way the tape is
the computer. As the symbols on the tape are manipulated
by simple rules, the computing happens. The output is really
more of an artifact of the machine using the tape as the computer.

The heart of the turing machine is the read-write head. The
read-write head transports the tape and positions cells of
the tape appropriately. It can read a cell determining what,
if any, symbol is written there. The machine works on, and
knows about, only one cell at a time. The tape in my machine
is a 1000’ roll of white 35mm film leader. The characters,
ones and zeros, are written by the machine with a black dry
erase marker.

Video Overview

The following video is an overview of the machine and its
components. There is a lot more information in other parts
of the site including hardware and software details,
as well as video examples of it
running some common Turing machine code.

While I have taken some liberty with a number of terms and
concepts, I hope you can see just how simple the rules that
drive a Turing machine are. Changing ones to zeros, moving
one cell to the left or right, these concepts are simple, yet
they can compute anything that is computable. And from
these simple concepts, the most complex computers of today
are born.