Pushdown automaton
In particular automata theory, pushdown automata (PDA) are abstract devices that recognize context-free languages.
Informally, a pushdown automaton is a finite automaton outfitted with access to a potentially unlimited amount of memory in the form of a single stack. The finite automaton in question is usually a nondeterministic finite state machine (resulting in a nondeterministic pushdown automaton or NPDA) since deterministic pushdown automata cannot recognize all context-free languages.
If we allow a finite automaton access to two stacks instead of just one, we obtain a more powerful device — equivalent in power to a Turing machine. A linear bounded automaton is a device which is more powerful than a pushdown automaton but less so than a Turing machine.
A NPDA W can be defined as a 7-tuple:
<math>W=(Q,\Sigma,\Phi,\sigma,s,\Omega,F)<math> where
- <math>Q<math> is a finite set of states
- <math>\Sigma<math> is a finite set of the input alphabet
- <math>\Phi<math> is a finite set of the stack alphabet
- <math>\sigma<math> is a finite transition relation <math>(Q \times ( \Sigma \cup \left \{ \epsilon \right \} ) \times \Phi) \longrightarrow P( Q \times \Phi ^{*} )<math>
- <math>s<math> is an element of <math>Q<math> the start state
- <math>\Omega<math> is the initial stack symbol
- <math>F<math> is subset of <math>Q<math>, consisting of the final states.
There are two possible acceptance criteria: acceptance by empty stack and acceptance by final state. The two are easily shown to be equivalent: a final state can perform a pop loop to get to an empty stack, and a machine can detect an empty stack and enter a final state by detecting a unique symbol pushed by the initial state.
See also
Categories: Computational models