Skip to content

reinh/turing

Repository files navigation

Turing

Synopsis

Turing is a Turing Machine simulator. It models as nearly as possible the original machine described in Turing's 1936 paper.

Features

Create a Turing Machine with a number of configurations and then step through its execution.

For example, Turing's first machine (in its condensed form):

machine = Turing::Machine.new
machine.configuration_list.add :b, nil, [[:write, 0], [:right], [:write, 1], [:right]], :b
10.times { machine.step }

machine.head.tape.to_binary_s # =>"01010101010101010101" 

This machine prints the sequence "0101..." onto the tape on successive squares. Note that Turing uses :b as the starting state... just as Turing did. Well, he used a gothic letter 'b', but close enough.

ASCII Turing Machine Specification

Read an ASCII Turing configuration language (TCL?) that specifies the configurations of a Turing machine as closely to their specification in the original paper as possible. For instance, the example machine above would be represented as:

b,  None,  P0RP1R,  b

That is, a machine with one configration, called b. When in state b on an empty square (None), the machine will print 0 (P0), move right (R), print 1 (P1), move right (R) and end in state b.

Contributors

Rein Henrichs: reinh@reinh.com

About

A Turing Machine Simulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages