Adaptive LL(*) parsing: the power of dynamic analysis

@inproceedings{Parr2014AdaptiveLP,
  title={Adaptive LL(*) parsing: the power of dynamic analysis},
  author={Terence John Parr and Sam Harwell and Kathleen Fisher},
  booktitle={OOPSLA 2014},
  year={2014}
}
Despite the advances made by modern parsing strategies such as PEG, LL(*), GLR, and GLL, parsing is not a solved problem. Existing approaches suffer from a number of weaknesses, including difficulties supporting side-effecting embedded actions, slow and/or unpredictable performance, and counter-intuitive matching strategies. This paper introduces the ALL(*) parsing strategy that combines the simplicity, efficiency, and predictability of conventional top-down LL(k) parsers with the power of a… 
One parser to rule them all
TLDR
This paper proposes a parsing framework that embraces context information in its core, and presents an implementation of the framework on top of the Generalized LL (GLL) parsing algorithm, and shows how common idioms in syntax of programming languages can be mapped to data-dependent grammars.
Practical general top-down parsers
TLDR
A derivation-based semantics for operator precedence disambiguation that is independent of the underlying parsing technique, and is safe, i.e., does not remove sentences from the language when there is no ambiguity is introduced.
PEG parsing in less space using progressive tabling and dynamic analysis
Tabular top-down parsing and its lazy variant, Packrat, are linear-time execution models for the TDPL family of recursive descent parsers with limited backtracking. Exponential work due to
Parsing expression grammars made practical
TLDR
Autumn is introduced, a general purpose PEG library that supports left-recursion, left and right associativity and precedence rules, and does so efficiently and compares its parser to both state of the art and battle-tested PEG and CFG parsers.
Relational parsing: a clean, fast parsing strategy for all context-free languages
TLDR
A novel parsing algorithm for all context-free languages, based on computing the relation between configurations and reaching transitions in a recursive transition network, which allows the implementation to outperform common generalized parsing algorithms, in some cases by orders of magnitude.
An Implementation of a Fast Threaded Nondeterministic LL(*) Parser Generator
TLDR
This paper proposes separating the semantic actions’ execution from the parsing phase, which will avoid the incorrect execution of semantic actions when dealing with non-deterministic grammars.
P L ] 1 7 S ep 2 01 6 Parsing Expression Grammars Made Practical
TLDR
Autumn is introduced, a general purpose PEG library that supports left-recursion, left and right associativity and precedence rules, and does so ef ficiently, and is compared to both state of the art and battle-tested PEG and CFG parsers.
On different LL and LR parsers used in LLLR parsing
  • B. Slivnik
  • Computer Science
    Comput. Lang. Syst. Struct.
  • 2017
LLLR Parsing: a Combination of LL and LR Parsing
TLDR
LLLR parsing is similar to LL(^*) parsing except that it uses LR(k) parsers instead of finite automata to resolve the LL(k] conflicts and (b) does not perform any backtracking.
ARPN Journal of Systems and Software::TGLL: A Fast Threaded Nondeterministic Ll (*) Parsing
TLDR
A new algorithm for solving non-determinism using multi-threading technology is presented, named TGLL (Threaded General LL) parsing method, which handles all context free grammars and resolves non-Determinism by launching multiple threads to parse the different alternative rules.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 36 REFERENCES
LL(*): the foundation of the ANTLR parser generator
TLDR
By statically removing as much speculation as possible, LL(*) provides the expressivity of PEGs while retaining LL's good error handling and unrestricted grammar actions.
GLL Parsing
Parsing expression grammars: a recognition-based syntactic foundation
  • B. Ford
  • Computer Science
    POPL '04
  • 2004
TLDR
PEGs address frequently felt expressiveness limitations of CFGs and REs, simplifying syntax definitions and making it unnecessary to separate their lexical and hierarchical components, and are here proven equivalent in effective recognition power.
Elkhound: A Fast, Practical GLR Parser Generator
TLDR
Elkhound is an implementation of the Generalized LR (GLR) parsing algorithm that allows the user to associate arbitrary C++ code with reduction actions, while retaining full control of sharing and disambiguation, but powerful enough to elegantly handle the dark corners of real-world languages.
Better extensibility through modular syntax
TLDR
Rats!, a parser generator for Java that supports easily extensible syntax, enables other grammar writers to realize real-world language extensions in little time and code, and generates parsers that consistently out-perform parsers created by two GLR parser generators.
Practical Arbitrary Lookahead LR Parsing
Semantics and algorithms for data-dependent grammars
TLDR
The design and theory of a new parsing engine, YAKKER, capable of satisfying the many needs of modern programmers and modern data processing applications is presented and its use on examples ranging from difficult programming language grammars to web server logs to binary data specification is illustrated.
A Practical Method for Constructing Efficient LALR(k) Parsers with Automatic Error Recovery
TLDR
An effective and fully automated syntactic error recovery method for LR( k) parsers is presented and a generally effective method for compressing LR(k) parsing tables is presented.
GLR Parsing in Time O( n 3 )
TLDR
Algorithms for general CF parsing are necessarily less efficient than algorithms for restricted CF parsing, e.g., the LL, operator precedence, and LR algorithms, because they must simulate a multi-path, nondeterministic pass over their inputs using some form of search, typically, goal-driven.
The Computational Complexity of GLR Parsing
TLDR
The Tomita parsing algorithm adapts Knuth’s (1967) well-known parsing algorithm for LR(K) Grammars to non-LR grammars, including ambiguous grammARS, including ambiguity grammar, to achieve provably efficient results.
...
1
2
3
4
...