Data structures and network algorithms
Data structures and network algorithms
Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
A practical method for LR and LL syntactic error diagnosis and recovery
ACM Transactions on Programming Languages and Systems (TOPLAS)
A simple realization of LR-parsers for regular right part grammars
Information Processing Letters
Automatic construction of incremental LR(1)—parsers
ACM SIGPLAN Notices
Grammatical abstraction and incremental syntax analysis in a language-based editor
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
Incremental recursive descent parsing
Computer Languages
Parallel incremental compilation
Parallel incremental compilation
Incremental Scanning and Parsing with Galaxy
IEEE Transactions on Software Engineering
Coherent user interfaces for language-based editing systems
International Journal of Man-Machine Studies - Special issue on structure-based editors and environments
Controlled grammatic ambiguity
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Precedences in specifications and implementations of programming languages
PLILP '91 Selected papers of the symposium on Programming language implementation and logic programming
Efficient incremental LR parsing for syntax-directed editors
ACM Transactions on Programming Languages and Systems (TOPLAS)
Incremental static semantic analysis
Incremental static semantic analysis
Practical algorithms for incremental software development environments
Practical algorithms for incremental software development environments
Augmenting Parsers to Support Incrementality
Journal of the ACM (JACM)
Regular right part grammars and their parsers
Communications of the ACM
Deterministic parsing of ambiguous grammars
Communications of the ACM
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Incremental LL(1) Parsing in Language-Based Editors
IEEE Transactions on Software Engineering
Reusing Batch Parsers as Incremental Parsers
Proceedings of the 15th Conference on Foundations of Software Technology and Theoretical Computer Science
A Simple and Efficient Incremental LL(1) parsing
SOFSEM '95 Proceedings of the 22nd Seminar on Current Trends in Theory and Practice of Informatics
Efficient self-versioning documents
COMPCON '97 Proceedings of the 42nd IEEE International Computer Conference
Presentation by tree transformation
Presentation by tree transformation
Incremental analysis of real programming languages
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Incremental Validation of XML Documents
ICDT '03 Proceedings of the 9th International Conference on Database Theory
Incremental validation of XML documents
ACM Transactions on Database Systems (TODS)
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
XGLR: an algorithm for ambiguity in programming languages
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
Practical Scope Recovery Using Bridge Parsing
Software Language Engineering
Lazy functional incremental parsing
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Language Analysis and Tools for Ambiguous Input Streams
Electronic Notes in Theoretical Computer Science (ENTCS)
Incremental compilation of knowledge documents for markup-based closed-world authoring
Proceedings of the sixth international conference on Knowledge capture
Software development environments on the web: a research agenda
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Bridging the chasm between MDE and the world of compilation
Software and Systems Modeling (SoSyM)
Efficient divide-and-conquer parsing of practical context-free languages
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Previously published algorithms for LR (k) incremental parsing are inefficient, unnecessarily restrictive, and in some cases incorrect. We present a simple algorithm based on parsing LR(k) sentential forms that can incrementally parse an arbitrary number of textual and/or structural modifications in optimal time and with no storage overhead. The central role of balanced sequences in achieving truly incremental behavior from analysis algorithms is described, along with automated methods to support balancing during parse table generation and parsing. Our approach extends the theory of sentential-form parsing to allow for ambiguity in the grammar, exploiting it for notational convenience, to denote sequences, and to construct compact (“abstract”) syntax trees directly. Combined, these techniques make the use of automatically generated incremental parsers in interactive software development environments both practical and effective. In addition, we address information preservation in these environments: Optimal node reuse is defined; previous definitions are shown to be insufficient; and a method for detecting node reuse is provided that is both simpler and faster than existing techniques. A program representation based on self-versioning documents is used to detect changes in the program, generate efficient change reports for subsequent analyses, and allow the parsing transformation itself to be treated as a reversible modification in the edit log.