Ambiguity in context-free grammars
SAC '95 Proceedings of the 1995 ACM symposium on Applied computing
Detection of Generative Ambiguities in Context-Free Mechanical Languages
Journal of the ACM (JACM)
Disambiguation Filters for Scannerless Generalized LR Parsers
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Analyzing Context-Free Grammars Using an Incremental SAT Solver
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
The Usability of Ambiguity Detection Methods for Context-Free Grammars
Electronic Notes in Theoretical Computer Science (ENTCS)
Analyzing ambiguity of context-free grammars
CIAA'07 Proceedings of the 12th international conference on Implementation and application of automata
Conservative ambiguity detection in context-free grammars
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
Tracking down the origins of ambiguity in context-free grammars
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Parse forest diagnostics with dr. ambiguity
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
Ambiguity detection: scaling to scannerless
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
Hi-index | 0.00 |
Real programming languages are often defined using ambiguous context-free grammars. Some ambiguity is intentional while other ambiguity is accidental. A good grammar development environment should therefore contain a static ambiguity checker to help the grammar engineer. Ambiguity of context-free grammars is an undecidable property. Nevertheless, various imperfect ambiguity checkers exist. Exhaustive methods are accurate, but suffer from non-termination. Termination is guaranteed by approximative methods, at the expense of accuracy. In this paper we combine an approximative method with an exhaustive method. We present an extension to the Noncanonical Unambiguity Test that identifies production rules that do not contribute to the ambiguity of a grammar and show how this information can be used to significantly reduce the search space of exhaustive methods. Our experimental evaluation on a number of real world grammars shows orders of magnitude gains in efficiency in some cases and negligible losses of efficiency in others.