


A modern educational and experimental simulator for deterministic multi-tape Turing machines written in C++23.
It has three layers:
- Core: the actual machine model and simulator
- CLI: a terminal app for running a machine from a TOML config file
- GUI: a Qt front end that will allow to create, modify, save and open machines
Table of Contents
Features
- Deterministic multi-tape Turing machines
- Configurable through TOML
- Infinite tapes
- Interactive CLI
- Batch execution
- Project serialization
- Modern C++23 implementation
- Cross-platform
Machine Specification
MTMS implements deterministic multi-tape Turing machines following the formal definition
$$ M = (Q,\Sigma,\Gamma,\delta,q_0,\sqcup,F) $$
where
- $Q$ is the finite set of states.
- $\Sigma$ is the input alphabet.
- $\Gamma$ is the tape alphabet.
- $q_0 \in Q$ is the initial state.
- $\sqcup \in \Gamma$ is the blank symbol.
- $F \subseteq Q$ is the set of accepting states.
The transition function is
$$ \delta : Q \times \Gamma^k \rightarrow Q \times \Gamma^k \times L,R,S