This Website has three main functionalities:
Grammars consist of sets of variables, terminals, productions and starting symbol from the variables. Usage:
When you filled in a valid grammar, press the arrow to convert it into an equivalent automaton. If the grammar you provided is type 3, the conversion will succeed, otherwise not.
The equivalent automaton will be displayed in the drawing area.
Graphs are created using states and transitions between states using the edit buttons; to enter edit mode, press the edit button.
After creating a grammar, you can enter an arbitrary word and check if it is contained in the language induced by the grammar by clicking "Check". If the grammar contains ε-productions, remove them first.
If the language contains the word you put in, a derivation will be displayed showing how the word can be constructed using the productions.
If the grammar you put in is valid and type 1, you can click "Generate example words" to generate up to 100 words that are also contained in the language.
The combined view - as the name suggests - allows you to convert a grammar into an equivalent automaton and vice versa.
So you can create an automaton first and convert it into the equivalent grammar (and manipulate that and regenerate the automaton) or create a grammar and convert it into an automaton (and manipulate that).
To convert the automaton into the equivalent grammar, either click on the arrow pointing to the right or enable auto convert. To convert a grammar into an equivalent automaton, you have to click the arrow pointing to the left.
To create a state, click on the position where you would like to place it inside the drawing area. The first state created will always be the start state. The start property can however be removed later. The states will be named like "z1", "z2" etc.
To create a transition, click on the state where you want the transition to begin and drag-and-drop to the state where you want the transition to end. You are then prompted to enter a terminal for this transition. Transitions with the same start and end state can also be created like this
To mark a state as end state, click on that state when 'Mark End' is enabled. End states are marked with a second smaller circle inside the state circle
To unmark a state as end state, click on that state when 'Delete End' is enabled.
To mark a state as start state, click on that state when 'Mark Start' is enabled. Start states are marked with an arrow that points to this state
To delete a state or transition, click on a state or transition. When highlighted, they will become green
To move a state to a new position, simply drag-and-drop the state to its desired location
The quick menu can be activated by clicking on a state while neither of the edit buttons are active.
The quick menu's buttons are assigned to (clockwise):
To pan the view, make sure you that neither of the edit buttons are active or that edit mode is not active. To pan, drag-and-drop the mouse to adjust the view
To zoom in/out use scroll wheel
For editing the states, you can also use the quick menu
This field displays the type of the grammar you put in (if it's a valid grammar)
This allows you to clear the form containing the grammar you put in
This allows you to copy the grammar values for you to paste it into any of the other converters
This allows you to paste the grammar values you copied
This allows you to insert an exemplary grammar for testing purposes
This allows you to show (and hide) the edit buttons
This allows you to clear the automaton you have created, after which you can start over
This allows you to take a screenshot of the drawing area. When first using this, you are prompted to allow downloads for this page
This applies to algorithm for converting a NFA (non definite finite automaton) into a DFA (definite finite automaton) while maintaining the language induced by the automaton
This applies an adapted algorithm that turns an arbitrary NFA into one that
This applies the algorithm that removes the ε-transitions in the automaton
This fields indicates whether your created automaton is a DFA or NFA