An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# Turing machine simulator

![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)
![Jupyter Notebook](https://img.shields.io/badge/jupyter-%23FA0F00.svg?style=for-the-badge&logo=jupyter&logoColor=white)

## 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.