Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Lazy recursive descent parsing for modular language implementation
Software—Practice & Experience
Memoization in top-down parsing
Computational Linguistics
An efficient context-free parsing algorithm
Communications of the ACM
The predictive analyzer and a path elimination technique
Communications of the ACM
The Functional Treatment of Parsing
The Functional Treatment of Parsing
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems
The theory of parsing, translation, and compiling
The theory of parsing, translation, and compiling
Monads for Functional Programming
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Techniques for automatic memoization with applications to context-free parsing
Computational Linguistics
Removing left recursion from context-free grammars
NAACL 2000 Proceedings of the 1st North American chapter of the Association for Computational Linguistics conference
Realization of natural language interfaces using lazy functional programming
ACM Computing Surveys (CSUR)
Executable Specifications of Fully General Attribute Grammars with Ambiguity and Left-Recursion
Canadian AI '09 Proceedings of the 22nd Canadian Conference on Artificial Intelligence: Advances in Artificial Intelligence
Parser combinators for ambiguous left-recursive grammars
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
Lazy combinators for executable specifications of general attribute grammars
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
Simple, functional, sound and complete parsing for all context-free grammars
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
A semantics for context-sensitive reduction semantics
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Hi-index | 0.00 |
In functional and logic programming, parsers can be built as modular executable specifications of grammars, using parser combinators and definite clause grammars respectively. These techniques are based on top-down backtracking search. Commonly used implementations are inefficient for ambiguous languages, cannot accommodate left-recursive grammars, and require exponential space to represent parse trees for highly ambiguous input. Memoization is known to improve efficiency, and work by other researchers has had some success in accommodating left recursion. This paper combines aspects of previous approaches and presents a method by which parsers can be built as modular and efficient executable specifications of ambiguous grammars containing unconstrained left recursion.