Once upon a time I did study. When I decided to go back and do some additional studies the whole educational system had changed. Now everyone was a “bachelor” or a “master” (not speaking of PhDs). So I had to do some extra studies in order to be allowed to study at an university. One of the things I had to do was a training in “theoretical IT”. During that time I wrote an emulator for a turing machine.

There was a task of writing a couple of simple scripts running on the simulator of the german university of Freiburg (Machine is still available under [http://ais.informatik.uni-freiburg.de/turing-applet/]). I felt a bit unhappy with this simulator and decided therefore to write my own.

It introduces a new description language which allows more flexible handling (deterministic and non deterministic, muliple tapes; both synchronous and asynchronous) while still supporting the old table style file format.

Features

  • Supports two file formats (import und export). A simple state transiStion description language compatible to the application mentioned above and a better description language supporting all features.
  • A GUI, which allows modifications by drag and drop (and can be saved to a file).
  • Context sensitive drop down menus on all components.
  • Script highlighting depending on the current state of the machine.
  • Handling of non deterministic state machines (NFA).

Documenation

Very poor at this stage. Currently there is a description of the syntax in EBNF. There is a lot to be done.

Screenshots

a nice small machine script animation of a non deterministic state machine
A small DFA ;-) Animated GIF of an NFA running

Download

To install the application you need only webstart support of Java 1.4+ (Install and run. For peoples which do not trust me (hope there are some) the application is available as applet as well.

Demos

Demofile Demofile (old style) Description
NFA.ts none possible A NFA accepting tapes ending in […,”1”,”1”].
turing1.ts turing1.tm A DFA accepting tapes containing sequences of [“0”,”1”] (at least one).
turing2.ts turing2.tm A DFA accepting tapes containing twice the same sequence of “+” and “-“ delimited by a “/” sign.

ToDo’s

A lot. But a couple of things are allready partially in the code contained.

  • Documentation (there is a lot to do)
  • Support for cellar automates
  • Better source highlighting (highlight transitions in sources)
  • Export to animated GIF’s
  • More fluid animation
  • faster
  • Comment source code and use GPL when publishing
  • Only partial replacement of source in case of modifications
  • Extend gui to an editor

Bug’s, Misspellings and other beauties

None known but I am sure that there are some (No program is perfect). Whoever stumbles across anything worth fixing: let me know.

Proposals, encurragements, inviation for dinner and similar may be sent to my mail address.

License

LotB (License of the brave)

Use it for whatever purpose you want. There is no guarantee for anything. Not even for fitness as a turing simulator.