HOPL-II The second ACM SIGPLAN conference on History of programming languages
ANTLR: a predicated-LL(k) parser generator
Software—Practice & Experience
Packrat parsing:: simple, powerful, lazy, linear time, functional pearl
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Parsing expression grammars: a recognition-based syntactic foundation
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Better extensibility through modular syntax
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Some Aspects of Parsing Expression Grammar
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
Applying Classical Concepts to Parsing Expression Grammar
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
DCGs + memoing = packrat parsing but is it worth it?
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
BITES Instead of FIRST for Parsing Expression Grammar
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
Left recursion in parsing expression grammars
SBLP'12 Proceedings of the 16th Brazilian conference on Programming Languages
Fundamenta Informaticae - Concurrency, Specification and Programming
Hi-index | 0.00 |
Packrat parsing is a powerful parsing algorithm presented by Ford in 2002. Packrat parsers can handle complicated grammars and recursive structures in lexical elements more easily than the traditional LL(k) or LR(1) parsing algorithms. However, packrat parsers require O(n) space for memoization, where n is the length of the input. This space inefficiency makes packrat parsers impractical in some applications. In our earlier work, we had proposed a packrat parser generator that accepts grammars extended with cut operators, which enable the generated parsers to reduce the amount of storage required. Experiments showed that parsers generated from cut-inserted grammars can parse Java programs and subset XML files in bounded space. In this study, we propose methods to automatically insert cut operators into some practical grammars without changing the accepted languages. Our experimental evaluations indicated that using our methods, packrat parsers can handle some practical grammars including the Java grammar in mostly constant space without requiring any extra annotations.