an implementation of Turing machines and finite state automata in C#