Supported Representations

| There are 4 different types of automata that can be created with JFLAP. In addition, JFLAP can convert grammars and regular expressions. Once the program starts the Main Menu (shown left) will appear, and let you choose which one you want. This also allows working on multiple machines at the same time in different windows if needed.

- Finite State Automaton (FSA) is the simplest automaton. FSAs correspond to regular languages, and each FSA can be deterministic or nondeterministic. FSAs come with several features in JFLAP like minimizing and NFA to DFA and NFA to Regular Expression. Here is an example of a very simple FSA:

- Pushdown Automaton uses a stack in addition to simply moving from state to state. The acceptance can be set to either empty stack or final state or both. Here is an example of a PDA that will parse through a set of parenthesis and accept only if they match properly:

- 1-tape and 2-tape Turing machines are theoretically capable of performing any computable task. Here is an example of a 2-tape Turing machine that accepts inputs in the format of a^n b^n c^n

- Grammar Conversion allows the conversion from a grammar to an automaton using four different algorithms: Context Free Grammar(CFG) to PDA (LL parsing), CFG to PDA (LR parsing), Greibach Normal Form(GNF) grammar to PDA, and Regular grammar (left linear) to FSA.

- Regular Expression Conversion performs the conversion from Regular Expression to FSA. Regular Expressions have only three operators: concatenation, union(+), and Kleene Star(*).