Skip to content

Yet Another Automata Simulator (YAAS) is a prototype tool for simulating the execution of Finite Automata, Pushdown Automata and Turing Machines.

License

Notifications You must be signed in to change notification settings

LockedThread/YAAS

 
 

Repository files navigation

YAAS

Yet Another Automata Simulator (YAAS) is a prototype tool for simulating the execution of Finite Automata, Pushdown Automata and Turing Machines. The current tool features are:

Usage

Requirements

  • Java 21+
  • Maven (if compiling)

Compiling

mvn clean install

Running

java -jar YAAS-1.0.2.jar

Finite Automata (FA)

  • Full support for Deterministic and Nondeterministic Finite Automata modeling, test and simulation;
  • Create, edit, save and save as image;
  • Support to add all missing transitions;
  • Support for removal of inaccessible and useless states;
  • Conversion from Nondeterministic Finite Automaton to Deterministic Finite Automaton;
  • Deterministic Finite Automaton minimization;
  • Regular Operations:
    • Union;
    • Concatenation;
    • Kleene Star;
    • Complement;
    • Intersection.

Pushdown Automata (PDA)

  • Full support for Deterministic and Nondeterministic Pushdown Automata modeling, test and simulation;
  • Create, edit, save and save as image;
  • Conversion from Final State to Empty Stack and vice-versa acceptance types.

Turing Machines (TM)

  • Full support for Deterministic Turing Machines modeling, test and simulation;
  • Support for Nondeterministic Turing Machines modeling;
  • Create, edit, save and save as image;
  • Automatic detection of infine loops, i.e., Turing Machines that never halt.

Author

This tool is developed by Prof. Dr. David Buzatto. Forked by Warren Snipes for Dr. Andrew Steinberg's Discrete Structures 2 class.

About

Yet Another Automata Simulator (YAAS) is a prototype tool for simulating the execution of Finite Automata, Pushdown Automata and Turing Machines.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%