deterministic pushdown automaton
A pushdown automaton is usually called “non-deterministic” because the image of the transition function is a subset of , which may possibly contain more than one element. In other words, the transition from one configuration to the next is not uniquely determined. When there is uniqueness, is called “deterministic![]()
”.
Formally, a deterministic pushdown automaton, or DPDA for short, is a non-deterministic pushdown automaton where the transition function has the following properties: for any , , and ,
- 1.
is at most a singleton,
- 2.
.
The properties can be interpreted as follows: given any configuration of , if there is a transition to the next configuration, the transition must be unique. The second property just insures that , so that when a -transition is possible for a given , no other transitions are possible for the same .
The way a DPDA works is exactly the same as an NPDA, with several modes of acceptance: acceptance on final state, acceptance on empty stack, and acceptance on final state and empty stack. However, unlike a NPDA, these acceptance methods are not equivalent![]()
. It can be shown that the set of languages
accepted on empty stack is a proper subset
![]()
of the set of languages determined on final state. In fact, every language in is prefix-free, while some languages in are not.
Nevertheless, any regular language can be accepted by a DPDA on empty stack, and any language accepted by a DPDA on final state is unambiguous, and, as a result, is a proper subset of the family of all context-free languages. This is quite unlike the case for finite automata: every non-deterministic finite automaton is equivalent to a deterministic finite automaton. A language in called a deterministic language.
Some examples: the set of palindromes is unambiguous, but not deterministic. The language is deterministic, but not prefix-free, and hence can not be accepted by any DPDA on empty stack. The language can be accepted by a DPDA on empty stack, but is not regular.
Any formal grammar that generates a deterministic language is said to be deterministic context-free. A deterministic context-free grammar can be described by what is known as the (http://planetmath.org/LRk) grammars.
The family of deterministic languages is closed under complementation, intersection![]()
with a regular language, but not arbitrary (finite) intersection, and hence not union.
Remark. The reason why can be traced back to the definition of a DPDA: it allows for the following possibilities for a DPDA :
- •
completely stops reading an input word because either there are no available transitions from one configuration to the next:
or the stack is emptied before the last input symbol is read: a configuration is reached and is not empty.
- •
consumes the last input symbol, and continues processing because of -transitions.
Some authors consider these imperfections of as being “non-deterministic”, and put additional constraints on , such as making sure is a total function![]()
, the stack is never empty, and delimiting input strings.
References
- 1 A. Salomaa Computation and Automata, Encyclopedia of Mathematics and Its Applications, Vol. 25. Cambridge (1985).
- 2 S. Ginsburg, The Mathematical Theory of Context-Free Languages, McGraw-Hill, New York (1966).
- 3 D. C. Kozen, Automata and Computability, Springer, New York (1997).
- 4 J.E. Hopcroft, J.D. Ullman, Formal Languages and Their Relation

to Automata, Addison-Wesley, (1969).