TM-and-DFA-Compiler-and-Simulator

This is just a repository of Turing-Machine (TM) and Deterministic-Finite-Automata (DFA) Compilers/Simulators.

TMS.java is a Turing-Machine compiler/simulator class that reads a description of a Turing-Machine specified by York-University-Turing-Machine-File-Format (YUTMFF for short). It can handle Turing-Machines with one-sided tapes (i.e., tapes that are infinite on one end only as described in Introduction to the Theory of Computation by Michael Sipser http://math.mit.edu/~sipser/).

TMSS.java is similar to TMS.java with the minor difference that it can handle Turing-Machines with two-sided tapes (tapes that are infinite on both ends).

DFA.java is a Deterministic-Finite-Automata (DFA for short) compiler/simulator class that reads a description of a DFA specified by York-University-Finite-Automata-File-Format (YUFAFF for short).