Turing machine analyzer
This is a browser-based application providing a graphical environment in which one may design, simulate and analyze the structure and behaviour of Turing machines. A fully functional build is available here. Useful information and examples can be found in the README file on GitHub.
The application is currently a work in progress: low-level design, visualization and simulation features are fully implemented; a high-level design language and advanced analysis tools are planned. A roadmap is available here.
Source code for the application is distributed as free software under the GPL license, version 3 or later.
Motivation
Teachers and tutors of theoretical computer science courses often face the dual problem of (a) helping novice students to become acquainted with the somewhat counterintuitive discipline of Turing machine design and interpretation, and on the other hand (b) interpreting and assessing their students’ output which — due to the aforementioned lack of intuition — can often get quite convoluted itself.
This project is an attempt at developing tools that may help solve both sides of the problem; first, by providing a graphical environment in which the structure and behavior of machine designs can be visualized and explored intuitively; second, by providing tools for assisted (and partially automated) analysis of their behavior in terms of a higher level description language.
It grew out of dissatisfaction with the tools already available on the internet, which are either too inflexible (i.e. limited in their functionality) or sport outdated and/or uncomfortable user interfaces.