ambiguous grammar
Let be a context-free grammar, and the language generated by it. Since every word in has at least one leftmost derivation, let us only consider leftmost derivations of words.
Definition. is said to be unambiguous if every word in has exactly one leftmost derivation. Otherwise, is said to be ambiguous.
For an example of an ambiguous grammar, let be the grammar consisting of as terminal symbols, as non-terminal symbols, and , , , and as productions. By definition, is context-free. Then the word has
-
•
, and
-
•
,
two leftmost derivations (corresponding to the following derivation trees).
Hence is ambiguous.
An example of an unambiguous grammar can be found when we convert the language formation rules of the classical propositional logic to a formal grammar. This grammar is context-free. By unique readability of well-formed formulas (words in this language), we conclude that the grammar is unambiguous.
Remarks.
-
•
A grammar is unambiguous iff every word in corresponds to a uniuqe derivation tree, since every derivation tree corresponds to a unique leftmost derivation.
-
•
Deciding whether a context-free grammar is ambiguous is undecidable unless it has only one terminal symbol.
The concept of ambiguity can be carried over to context-free languages. Since every context-free language can be generated by many context-free grammars, some of which may be ambiguous, while others may not be, there are potentially three classes of context-free languages:
-
1.
those that can only be generated by unambiguous grammars,
-
2.
those that can be generated by ambiguous, as well as unambiguous grammars,
-
3.
those that can only be generated by ambiguous grammars.
However, the first class is an empty set: every context-free language can be generated by an ambiguous grammar. Suppose is a context-free grammar generating the language . If contains the production , then is ambiguous, for any leftmost derivation of a word can be lengthened to a leftmost derivation . If does not contain , the grammar obtained by adding the production to generates as well, and is ambiguous as we have just shown.
The other two classes are formally defined as follows:
Definition. A context-free language is unambiguous if it can be generated by an unambiguous grammar. Otherwise, it is said to be inherently ambiguous.
It can be shown that any regular language is unambiguous, and so is any deterministic context-free language (a language generated by a deterministic pushdown automaton). In addition, the intersection as well as the difference of a unambiguous context-free language with a regular langauge is unambiguous and context-free.
Nevertheless, inherently ambiguous languages do exist. Several explicit examples can be found in Ginsburg, one of which is the union of two context-free languages and .
Remark. It is undecidable whether a context-free language over at least two symbols is inherently ambiguous.
References
- 1 S. Ginsburg, The Mathematical Theory of Context-Free Languages, McGraw-Hill, New York (1966).
- 2 D. C. Kozen, Automata and Computability, Springer, New York (1997).
Title | ambiguous grammar |
---|---|
Canonical name | AmbiguousGrammar |
Date of creation | 2013-03-22 18:54:57 |
Last modified on | 2013-03-22 18:54:57 |
Owner | CWoo (3771) |
Last modified by | CWoo (3771) |
Numerical id | 14 |
Author | CWoo (3771) |
Entry type | Definition |
Classification | msc 68Q42 |
Classification | msc 68Q45 |
Related topic | DeterministicPushdownAutomaton |
Defines | ambiguous |
Defines | inherently ambiguous |
Defines | unambiguous |