https://github.com/placeblock/turing-sim
[[DISCLAIMER]] We do not like Java Swing. This is for University purposes only!
https://github.com/placeblock/turing-sim
Last synced: 10 months ago
JSON representation
[[DISCLAIMER]] We do not like Java Swing. This is for University purposes only!
- Host: GitHub
- URL: https://github.com/placeblock/turing-sim
- Owner: Placeblock
- License: gpl-3.0
- Created: 2025-06-10T08:01:35.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-13T17:47:47.000Z (12 months ago)
- Last Synced: 2025-08-31T03:56:36.884Z (10 months ago)
- Language: Java
- Size: 2.7 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Turing Machine Simulator
DISCLAIMER: We do not like Java Swing. This is for University purposes only!
A graphical Java application for designing, configuring, and simulating Turing machines. This educational tool provides an intuitive interface for creating transition tables, visualizing tape operations, and stepping through machine execution.
## Features
- **Interactive State Register**: Create and modify states with transitions using a table-based editor
- **Visual Tape Display**: Real-time visualization of the tape with highlighted head position
- **Machine Controls**: Step through execution manually or run continuously with adjustable speed
- **Configuration Management**: Save and load machine configurations and initial tape states
- **State Management**: Define initial states, final states, and transition functions
- **Alphabet Customization**: Configure tape alphabet and blank symbols
## Dependencies
- **Lombok**: Reduces boilerplate code by automatically generating getters, setters, constructors, and other common methods
- **FlatLaf**: Modern look-and-feel library that provides a clean, flat design theme for the Swing GUI
## Getting Started
1. Launch the application
2. Either load an existing configuration file or start with example data
3. Optionally load an initial tape state from a file
4. Design your Turing machine using the state register table
5. Use the control panel to execute and observe your machine
## Usage
- **Right-click** on states, symbols, or transitions for context menus with additional options
- **Step button**: Execute one transition at a time
- **Play/Stop**: Run the machine continuously
- **Speed slider**: Adjust execution speed during continuous runs
- **Reset**: Return to initial configuration
The application validates your machine configuration and provides error messages for incomplete or invalid transitions.
## File Formats
- **Configuration files**: Complete machine definitions including states, transitions, and alphabet
- **Tape files**: Initial tape content as plain text