https://github.com/anganda/finite-automata-interface
An Application for the Formal Languages and Compilers Course with C++ and Qt Framework
https://github.com/anganda/finite-automata-interface
automation cpp moderncpp qtframework
Last synced: 6 months ago
JSON representation
An Application for the Formal Languages and Compilers Course with C++ and Qt Framework
- Host: GitHub
- URL: https://github.com/anganda/finite-automata-interface
- Owner: AngAnda
- Created: 2023-12-19T11:38:47.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-22T15:07:48.000Z (almost 2 years ago)
- Last Synced: 2025-04-09T10:12:41.421Z (10 months ago)
- Topics: automation, cpp, moderncpp, qtframework
- Language: C++
- Homepage:
- Size: 126 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Finite Automata Interface
This tool is a graphical application designed for the creation, simulation, and analysis of finite automata, which are key concepts in the fields of computer science and discrete mathematics. It provides an interactive way to visualize and understand the workings of automata.
## Features
### State Management
- **Add State**: Introduce new states into the automaton.
- **Select Final State:** Mark states as final (acceptance) states, visually indicated by a double circle.
- **Select Starting State:** Designate the initial state of the automaton, indicated by an entering arrow with no originating state.
- **Delete State:** Remove states from the automaton.

### Transitions
- **Create Transitions**: Define transitions between states with specified input symbols.
- **Lambda Transitions**: Implement lambda (ε) transitions that allow the automaton to move between states without consuming any input symbols.
### Word Processing
- **Read One Word**: Test individual words to determine if they are accepted by the automaton. It will display an animation of the word passing throw the automata.
- **Read Words from File**: Bulk process words from a file to validate against the automaton.

### Automaton Management
- **Save Automaton:** Preserve the current automaton structure for future use.
- **Load Automaton:** Retrieve and load previously saved automata.
- **Select Automaton Type:** Choose among different types of automata like DFA, NFA, etc.
### Simulation and Validation
- **Input Validation:** Simulate the input processing and validate whether the automaton accepts or rejects it.
- **Invalid Automaton Detection:** The system notifies when the automaton is incorrectly configured or incomplete.
## Usage
The application is straightforward to use with a graphical interface that allows drag-and-drop manipulation of states and transitions. Users can input strings to be tested against the defined automaton and receive immediate feedback on whether the strings are accepted.