https://github.com/nrobledosagredo/turing-machine-simulator
A Turing machine simulator based on automata theory, allowing users to define transitions, states, and evaluate words to determine their membership in a language.
https://github.com/nrobledosagredo/turing-machine-simulator
automata-theory turing-machine
Last synced: over 1 year ago
JSON representation
A Turing machine simulator based on automata theory, allowing users to define transitions, states, and evaluate words to determine their membership in a language.
- Host: GitHub
- URL: https://github.com/nrobledosagredo/turing-machine-simulator
- Owner: nrobledosagredo
- Created: 2024-11-16T23:35:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-05T20:17:59.000Z (over 1 year ago)
- Last Synced: 2025-03-16T04:28:33.183Z (over 1 year ago)
- Topics: automata-theory, turing-machine
- Language: Python
- Homepage:
- Size: 16.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Turing machine simulator


## Overview
An interactive Turing machine simulator based on automata theory, created as part of a learning course.
It evaluates words based on a set of transitions defined by the user to determine their membership in a language.
## Features
* Allows configuring initial and final states.
* Supports transitions in the format `d(q,x) = (p,Y,L)`:
* `q`: current state
* `x`: current symbol on the tape
* `p`: new state
* `Y`: symbol to be written
* `L`: head movement (`I` for left, `D` for right)
* Verifies if words belong to the defined language.
## Prerequisites
* **Operating System:** Windows (for executable versions).
* **Python:** Version 3.x (for script execution).
* **Jupyter Notebook:** To open and run the notebook file.
## Setup
* **GUI:** Run `turing-machine-gui.exe`. Source code is in `turing-machine-gui.py`.
* **CLI:** Run `turing-machine-cli.exe`. Source code is in `turing-machine-cli.py`.
* **Notebook:** Open `turing-machine-simulator.ipynb` and execute the code blocks.