Skip to main content

Automata Theory, including abstract machines, grammars, parsing, grammatical inference, transducers, and finite-state techniques

Automata (plural of automaton) are abstract models of machines. These machines take an input such as a string of characters and give some output, often an "accept" or "decline" value.

These machines are closely related to . Many languages can be categorized based on the type of automata that can accept them. For instance,

  • regular languages can be recognized by some deterministic finite automata.
  • context-free languages can be recognized by some pushdown automata.
  • recursively enumerable languages can be recognized by some Turing machine.

There are many different types of automata, each with slightly different definitions. A few examples are

  • Deterministic Finite Automata (DFA)
  • Nondeterministic Finite Automata (NFA)
  • Pushdown Automata
  • Infinite Automata
  • Alternating Automata

For instance, a deterministic finite automata $A$ has five parts:

  • a finite set of states $Q$
  • a finite set of input symbols called the alphabet $\Sigma$
  • a transition function $\delta: (Q\times \Sigma)\rightarrow Q$
  • an initial state $q_0 \in Q$
  • a set of accept states $F\subseteq Q$

The automaton $A$ takes in a string $\sigma$ of characters of $\Sigma$. The automaton starts at state $q_0$ and then for each letter of $\sigma$ it moves to another state according to the transition function $\delta$. Once the automaton has used every letter of $\sigma$, if its final state is in $F$, then we say that $A$ accepts $\sigma$.

For questions also about