Skip to content

this project aims at facilitating the use of automats

Notifications You must be signed in to change notification settings

mende237/automaton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automaton Project

Automaton Icon

A graphical application for visualizing and manipulating finite automata, featuring a C backend and a JavaFX frontend.


Table of Contents


Features

  • Automaton Creation: Create and edit both deterministic (AFD) and non-deterministic (AFN) finite automata.
  • Regular Expression Conversion: Convert regular expressions to finite automata using Thomson's and Glushkov's algorithms.
  • AFN to AFD Conversion: Transform non-deterministic finite automata into deterministic ones.
  • Automaton Minimization: Minimize DFAs with Hopcroft's and Brzozowski's algorithms.
  • Word Recognition: Test if a word is accepted by an automaton.
  • Automaton Operations: Perform operations like complement, mirror, union, and intersection on automata.

Screenshots

Here are some screenshots of the application in action:

AFN to AFD Conversion Automaton Editing
AFN to AFD view Edit Automaton
Automaton Minimization Regex to AFN (Thomson)
Minimization Thomson Algorithm

Technologies

  • Backend: C
  • Frontend: JavaFX, Maven

Project Structure

The project is organized into two main directories:

  • back_end/: Contains all the core logic for automaton manipulation, written in C.
  • front_end/: The JavaFX-based graphical user interface.

How to Run

Backend

To build the backend, navigate to the back_end directory and execute the build script:

cd back_end
./build.sh

This will compile the C code and create a main executable in the same directory.

Frontend

Ensure you have Java and Maven installed. To run the frontend application, navigate to the front_end directory and use the following commands:

cd front_end
mvn clean install
java -jar target/front_end-1.0-SNAPSHOT.jar

About

this project aims at facilitating the use of automats

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published