Back to overview

Optimizing Parser Combinators

Type of publication Peer-reviewed
Publikationsform Proceedings (peer-reviewed)
Author Kurš Jan, Vraný Jan, Ghafari Mohammad, Lungu Mircea, Nierstrasz Oscar,
Project Agile Software Analysis
Show all

Proceedings (peer-reviewed)

ISBN 978-1-4503-4524-8
Title of proceedings Proceedings of International Workshop on Smalltalk Technologies (IWST 2016)
DOI 10.1145/2991041.2991042

Open Access


Parser combinators are a popular approach to parsing. Parser combinators follow the structure of an underlying grammar, are modular, well-structured, easy to maintain, and can recognize a large variety of languages including context-sensitive ones. However, their universality and flexibility introduces a noticeable performance overhead. Time-wise, parser combinators cannot compete with parsers generated by well-performing parser generators or optimized hand-written code. Techniques exist to achieve a linear asymptotic performance of parser combinators, yet there is still a significant constant multiplier. This can be further lowered using meta-programming techniques. In this work we present a more traditional approach to optimization --- a compiler --- applied to the domain of parser combinators. A parser combinator compiler (pc-compiler) analyzes a parser combinator, applies parser combinator-specific optimizations and, generates an equivalent high-performance top-down parser. Such a compiler preserves the advantages of parser combinators while complementing them with better performance.