*** Welcome to piglix ***

Deterministic context-free language


In formal language theory, deterministic context-free languages (DCFL) are a proper subset of context-free languages. They are the context-free languages that can be accepted by a deterministic pushdown automaton. DCFLs are always unambiguous, meaning that they admit an unambiguous grammar, but any (non-empty) DCFL also admits ambiguous grammars. There are non-deterministic unambiguous CFLs, so DCFLs form a proper subset of unambiguous CFLs.

DCFLs are of great practical interest, as they can be parsed in linear time, and various restricted forms of DCFGs admit simple practical parsers. They are thus widely used throughout computer science.

The notion of the DCFL is closely related to the deterministic pushdown automaton (DPDA). It is where the language power of pushdown automatons is reduced to if we make them deterministic; the pushdown automatons become unable to choose between different state-transition alternatives and as a consequence cannot recognize all context-free languages.Unambiguous grammars do not always generate a DCFL. For example, the language of even-length palindromes on the alphabet of 0 and 1 has the unambiguous context-free grammar S → 0S0 | 1S1 | ε. An arbitrary string of this language cannot be parsed without reading all its letters first, which means that a pushdown automaton has to try alternative state transitions to accommodate for the different possible lengths of a semi-parsed string.

Deterministic context-free languages can be recognized by a deterministic Turing machine in polynomial time and O(log2n) space; as a corollary, DCFL is a subset of the complexity class SC. The set of deterministic context-free languages is not closed under union but is closed under complement.


...
Wikipedia

...