ACM SIGPLAN Notices · 2006 · 23 citations · 9 references
ComputingComputer ScienceAlgorithmsProgramming LanguagesSyntaxAbstract Syntax TreesBacktracking AlgorithmsGrammarParsingSyntactic AnalysisSyntax AnalysisAmbiguous GrammarsComplexityExponential Time ComplexityLanguage ParsingLeft RecursionParsing AlgorithmsRecursionTop-down Parsing
Top-down backtracking language processors are highly modular, can handle ambiguity, and are easy to implement with clear and maintainable code. However, a widely-held, and incorrect, view is that top-down processors are inherently exponential for ambiguous grammars and cannot accommodate left-recursive productions. It has been known for many years that exponential complexity can be avoided by memoization, and that left-recursive productions can be accommodated through a variety of techniques. However, until now, memoization and techniques for handling left recursion have either been presented independently, or else attempts at their integration have compromised modularity and clarity of the code.
9
Higher-order functions for parsing
Graham Hutton · Journal of Functional Programming · 1992 · 183 citations · Full text
How to replace failure by a list of successes
Philip Wadler · 1985 · 110 citations
The predictive analyzer and a path elimination technique
Susumu Kuno · Communications of the ACM · 1965 · 58 citations · Full text
Memoization of Top Down Parsing
Mark Johnson · ArXiv.org · 1995 · 44 citations · Full text
Language Studies, Computer Science, Computational Linguistics +10