The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
The annotated C++ reference manual
The annotated C++ reference manual
Engineering a simple, efficient code-generator generator
ACM Letters on Programming Languages and Systems (LOPLAS)
Obtaining practical variants of LL (K) and LR (K) for K greater than 1 by splitting the atomic K-tuple
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
An efficient context-free parsing algorithm
Communications of the ACM
Transition network grammars for natural language analysis
Communications of the ACM
Packrat parsing:: simple, powerful, lazy, linear time, functional pearl
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Adding Semantic and Syntactic Predicates To LL(k): pred-LL(k)
CC '94 Proceedings of the 5th International Conference on Compiler Construction
Debugging Eli-Generated Compilers With Noosa
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
SableCC, an Object-Oriented Compiler Framework
TOOLS '98 Proceedings of the Technology of Object-Oriented Languages and Systems
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Practical experiments with regular approximation of context-free languages
Computational Linguistics - Special issue on finite-state methods in NLP
Weaving a debugging aspect into domain-specific language grammars
Proceedings of the 2005 ACM symposium on Applied computing
Toward an engineering discipline for grammarware
ACM Transactions on Software Engineering and Methodology (TOSEM)
Better extensibility through modular syntax
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
PADS: an end-to-end system for processing ad hoc data
Proceedings of the 2006 ACM SIGMOD international conference on Management of data
Evaluating GLR parsing algorithms
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
The Definitive ANTLR Reference: Building Domain-Specific Languages
The Definitive ANTLR Reference: Building Domain-Specific Languages
Framework for instruction-level tracing and analysis of program executions
Proceedings of the 2nd international conference on Virtual execution environments
Stratego/XT 0.17. A language and toolset for program transformation
Science of Computer Programming
A pattern matching compiler for multiple target languages
CC'03 Proceedings of the 12th international conference on Compiler construction
VAST: visualization of abstract syntax trees within language processors courses
Proceedings of the 4th ACM symposium on Software visualization
ReuseTool-An extensible tool support for object-oriented framework reuse
Journal of Systems and Software
Integrated language definition testing: enabling test-driven language development
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
QsCores: trading dark silicon for scalable energy efficiency with quasi-specific cores
Proceedings of the 44th Annual IEEE/ACM International Symposium on Microarchitecture
Jaccie: A Java-based compiler-compiler for generating, visualizing and debugging compiler components
Science of Computer Programming
Hi-index | 0.00 |
Programmers tend to avoid using language tools, resorting to ad hoc methods, because tools can be hard to use, their parsing strategies can be difficult to understand and debug, and their generated parsers can be opaque black-boxes. In particular, there are two very common difficulties encountered by grammar developers: understanding why a grammar fragment results in a parser non-determinism and determining why a generated parser incorrectly interprets an input sentence. This paper describes ANTLRWorks, a complete development environment for ANTLR grammars that attempts to resolve these difficulties and, in general, make grammar development more accessible to the average programmer. The main components are a grammar editor with refactoring and navigation features, a grammar interpreter, and a domain-specific grammar debugger. ANTLRWorks' primary contributions are a parser non-determinism visualizer based on syntax diagrams and a time-traveling debugger that pays special attention to parser decision-making by visualizing lookahead usage and speculative parsing during backtracking. Copyright © 2008 John Wiley & Sons, Ltd.