Related Resources: calculators

Automation Simulator Application CAD Computer Aided Design

Applications & Design

Automation Simulator Application CAD Computer Aided Design

This internet based application simulates various finite state machines: Deterministic Finite Automata (DFA), Nondeterministic Finite Automata (NFA), Pushdown Automata (PDA).

A large set of test strings can be designated to be accepted or rejected and then all tested at once. Or, a specific string can be step-debugged to see exactly how the finite state machine would handle it.

Premium Membership Required
Open (Pop up):Automation Simulator Application


Automation Simulator

Deterministic Finite Automata (DFA)

DFA uses include protocol analysis, text parsing, video game character behavior, security analysis, CPU control units, natural language processing, and speech recognition. Additionally, many simple (and not so simple) mechanical devices are frequently designed and implemented using DFAs, such as elevators, vending machines, and traffic-sensitive traffic lights.

As the application examples below show DFAs naturally lend themselves to concisely representing any system which must maintain an internal definition of state.

Non-Exhaustive List of DFA Applications

  • Vending Machines
  • Traffic Lights
  • Video Games
  • Text Parsing
  • Regular Expression Matching
  • CPU Controllers
  • Protocol Analysis
  • Natural Language Processing
  • Speech Recognition

Nondeterministic Finite Automata (NFA)

A nondeterministic finite automaton ( NFA ), or nondeterministic finite-state machine, does not need to obey these restrictions. In particular, every DFA is also an NFA. Sometimes the term NFA is used in a narrower sense, referring to an NFA that is not a DFA, but not in this article.

Pushdown Automata (PDA)

Pushdown automata are used in theories about what can be computed by machines. They are more capable than finite-state machines but less capable than Turing machines (see below). Deterministic pushdown automata can recognize all deterministic context-free languages while nondeterministic ones can recognize all context-free languages, with the former often used in parser design.

The term "pushdown" refers to the fact that the stack can be regarded as being "pushed down" like a tray dispenser at a cafeteria, since the operations never work on elements other than the top element. A stack automaton, by contrast, does allow access to and operations on deeper elements. Stack automata can recognize a strictly larger set of languages than pushdown automata.[1] A nested stack automaton allows full access, and also allows stacked values to be entire sub-stacks rather than just single finite symbols.

Check out the following