Affiliation:
1. University of Utah, USA
Abstract
Current algorithms for context-free parsing inflict a trade-off between ease of understanding, ease of implementation, theoretical complexity, and practical performance. No algorithm achieves all of these properties simultaneously. Might et al. introduced parsing with derivatives, which handles arbitrary context-free grammars while being both easy to understand and simple to implement. Despite much initial enthusiasm and a multitude of independent implementations, its worst-case complexity has never been proven to be better than exponential. In fact, high-level arguments claiming it is fundamentally exponential have been advanced and even accepted as part of the folklore. Performance ended up being sluggish in practice, and this sluggishness was taken as informal evidence of exponentiality. In this paper, we reexamine the performance of parsing with derivatives. We have discovered that it is not exponential but, in fact, cubic. Moreover, simple (though perhaps not obvious) modifications to the implementation by Might et al. lead to an implementation that is not only easy to understand but also highly performant in practice.
Funder
Defense Advanced Research Projects Agency
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference10 articles.
1. Derivatives of Regular Expressions
2. URL https://github.com/webyrd/ relational-parsing-with-derivatives. Russ Cox. Yacc is not dead;Byrd William;Blog,2013
3. URL https://github. com/Engelberg/instaparse. Abraham Flaxman, Aram W. Harrow, and Gregory B. Sorkin. Strings with maximally many distinct subsequences and substrings;Engelberg Mark;The Electronic Journal of Combanatorics,2015
4. A unified approach to global program optimization
5. A Completeness Theorem for Kleene Algebras and the Algebra of Regular Events
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Staged selective parser combinators;Proceedings of the ACM on Programming Languages;2020-08-02
2. Derivatives of Parsing Expression Grammars;Electronic Proceedings in Theoretical Computer Science;2017-08-21
3. Partial Derivatives for Context-Free Languages;Lecture Notes in Computer Science;2017