June 23, 2012, is the Centenary of Alan Turing’s birth in London.
And April 12, 2012, is the 23rd birthday of Crystal.
A Turing machine is a device that manipulates symbols on a strip of tape according to a table of rules.
Despite its simplicity, a Turing machine can be adapted to simulate the logic of any computer algorithm.
1. Use it to explain the functions of a CPU inside a computer.
2. Send it as a nerdy geeky gift.
A door poster opposite to my office inspired me.
As my girlfriend's birthday is approaching, I realized that I should prepare a special gift for her.
Aha! What about creating a Turing machine for her?
So here is this website on which you can create virtual Turing machines and share them with your friends.
Sounds nerdy, huh?
Check out what I've prepared for her.
"We are not concerned with the mechanics or the electronics of the matter. Perhaps the simplest way to picture the thing is quite crudely: Inside the box there is a man, who does all the reading and writing and erasing and moving. (The box has no bottom: the poor mug just walks along between the ties, pulling the box with him.) The man has a list of m instructions written down on a piece of paper. He is in state qi when he is carrying out instruction number i [etc.]"Boolos and Jeffrey (1974, 1999) p.21
This description closely follows Emil Post's "Formulation I" for a "finite combinatory process": a man, equipped with and following a "fixed unalterable set of instructions", moving left or right through "an infinite sequence of spaces or boxes" and while in a box either printing on a piece of paper a single "vertical stroke" or erasing it (Post 1936 reprinted in Undecidable p.289). Post's formulation was the first of its type to be published; it preceded Turing's by a matter of a few months. Both descriptions-- Post's and Boolos and Jeffrey's — use simpler 4-tuples rather than 5-tuples to define the 'm-configurations' (instructions) of their processes.