One way of verifying a grammar is the detection of ambiguities. Ambiguities are not always unwanted, but they can only be controlled if their sources are known. Unfortunately, the ambiguity problem for context-free grammars is undecidable in the general case. Various ambiguity detection methods (ADMs) exist, but they can never be perfect. In this paper we explore three ADMs to test whether they still can be of any practical value: the derivation generator AMBER, the LR(k) test and the Noncanonical Unambiguity test. We benchmarked their implementations on a collection of ambiguous and unambiguous grammars of different sizes and compared their practical usability. We measured the accuracy, termination and performance of the methods, and analyzed how their accuracy could be traded for performance.
, , , , ,
, ,
Elsevier B.V.
A. Johnstone (Adrian) , J.J. Vinju (Jurgen)
Electronic Notes in Theoretical Computer Science
Workshop on Language Descriptions, Tools and Applications
Software Analysis and Transformation

Basten, B. (2008). The Usability of Ambiguity Detection Methods for Context-Free Grammars. In A. Johnstone & J. Vinju (Eds.), Proceedings of the Eigth Workshop on Language Descriptions, Tools and Applications. Elsevier B.V.