Skip to content

A tool for testing and simulating Deterministic Finite Machines with string inputs

Notifications You must be signed in to change notification settings

arjkashyap/DFA-simulator

Repository files navigation

Deterministic Finite Machine Simulator

Build and test DFAs

Description:

Finite Automata(FA) is the simplest machine to recognize patterns. DFA refers to deterministic finite automata. Deterministic refers to the uniqueness of the computation. The finite automata are called deterministic finite automata if the machine is read an input string one symbol at a time.


Rules for Creating A DFA

  • DFA refers to deterministic finite automata. Deterministic refers to the uniqueness of the computation. The finite automata are called deterministic finite automata if the machine is read an input string one symbol at a time.
  • In DFA, there is only one path for specific input from the current state to the next state.
  • DFA does not accept the null move, i.e., the DFA cannot change state without any input character.
  • DFA can contain multiple final states.

This is a software which lets you build DFA diagrams on a drawing area and test it with custom input strings.


Run:

  • Clone this repositor and open index.html
  • Press Add new state button and drag the button to your required position. Connect states using state transition button. A form will appear which will require inputs such as the image shown below.
  • Specify the Input and the states which are to be connected.
  • After the diagram is complete, press Test string button (make sure you have specified a final state)
  • Enter an input string. Make sure the chars in the string are the same as the inputs taken for state transitions and Run
  • Depending upon the result of the string test, the console shows one of the following message

Test Accepted

Test Rejected


Contribution

During the project developement, my focus was on JavaScirpt, and the UI was completely neglected (as you can see). This web app can use a better interface. If you face any bugs report issue accordingly.