Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The syntax definition formalism SDF—reference manual—
ACM SIGPLAN Notices
Scannerless NSLR(1) parsing of programming languages
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
A note on ambiguity in context-free grammars
Information Processing Letters
On The Ambiguity Problem of Backus Systems
Journal of the ACM (JACM)
An efficient context-free parsing algorithm
Communications of the ACM
The next 700 programming languages
Communications of the ACM
On ambiguity in phrase structure languages
Communications of the ACM
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
Semi-automatic grammar recovery
Software—Practice & Experience
CC '99 Proceedings of the 8th International Conference on Compiler Construction, Held as Part of the European Joint Conferences on the Theory and Practice of Software, ETAPS'99
Disambiguation Filters for Scannerless Generalized LR Parsers
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Generating Robust Parsers using Island Grammars
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
XGLR: an algorithm for ambiguity in programming languages
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Declarative, formal, and extensible syntax definition for aspectJ
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Grammar Engineering Support for Precedence Rule Recovery and Compatibility Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
SPPF-Style Parsing From Earley Recognisers
Electronic Notes in Theoretical Computer Science (ENTCS)
Accelerating the creation of customized, language-Specific IDEs in Eclipse
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Bracketed context-free languages
Journal of Computer and System Sciences
Electronic Notes in Theoretical Computer Science (ENTCS)
Faster ambiguity detection by grammar filtering
Proceedings of the Tenth Workshop on Language Descriptions, Tools and Applications
Tracking down the origins of ambiguity in context-free grammars
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
EASY meta-programming with Rascal
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Modelling GLL parser implementations
SLE'10 Proceedings of the Third international conference on Software language engineering
LL(*): the foundation of the ANTLR parser generator
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Generalized type-based disambiguation of meta programs with concrete object syntax
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Hi-index | 0.00 |
In this paper we propose and evaluate a method for locating causes of ambiguity in context-free grammars by automatic analysis of parse forests. A parse forest is the set of parse trees of an ambiguous sentence. Deducing causes of ambiguity from observing parse forests is hard for grammar engineers because of (a) the size of the parse forests, (b) the complex shape of parse forests, and (c) the diversity of causes of ambiguity. We first analyze the diversity of ambiguities in grammars for programming languages and the diversity of solutions to these ambiguities. Then we introduce Dr. Ambiguity: a parse forest diagnostics tools that explains the causes of ambiguity by analyzing differences between parse trees and proposes solutions. We demonstrate its effectiveness using a small experiment with a grammar for Java 5.