An NPDA is a machine that has every part that an NFA does. In addition, it also has a stack.
Its program (transition table) uses its current state, the current symbol under the read head, and the symbol at the top of the stack, to make decision.
In contrast to the finite automata, nondeterministic PDA’s (NPDA’s) are more powerful than the deterministic kind (DPDA’s).
By default, the term PDA means NPDA. A deterministic PDA is always abbreviated DPDA.
Input string is given on the tape, one symbol per cell.
Machine starts in the start state with an empty stack, and with its read head positioned at the start of tape.
Machine knows when it is at the end of input.
Some states are marked as final (or accept or accepting) states.
Input string is accepted iff there exists a sequence of choices at each computation step such that following those choices enables the machine to end up in some final state after it has processed all characters of the input string.
A DPDA is similar to an NPDA except that for any triple (state, tape symbol or \(\epsilon\), stack symbol or \(\epsilon\)) the machine has at most one choice of computation step.
Note that both the DPDA and the NPDA can crash!
A DFA \(M\) is a 6-tuple \((Q, \Sigma, \Gamma, \delta, q_0, F)\), where
A state/transition diagram is a (multi)digraph that depicts a PDA.