Efficient parsing with parser combinators
The result's identifiers
Result code in IS VaVaI
<a href="https://www.isvavai.cz/riv?ss=detail&h=RIV%2F68407700%3A21240%2F18%3A00316556" target="_blank" >RIV/68407700:21240/18:00316556 - isvavai.cz</a>
Result on the web
<a href="http://www.sciencedirect.com/science/article/pii/S0167642317302654" target="_blank" >http://www.sciencedirect.com/science/article/pii/S0167642317302654</a>
DOI - Digital Object Identifier
<a href="http://dx.doi.org/10.1016/j.scico.2017.12.001" target="_blank" >10.1016/j.scico.2017.12.001</a>
Alternative languages
Result language
angličtina
Original language name
Efficient parsing with parser combinators
Original language description
Parser combinators offer a universal and flexible approach to parsing. They 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, these advantages introduce a noticeable performance overhead mainly because the same powerful parsing algorithm is used to recognize even simple languages. 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 a significant constant multiplier. The multiplier can be lowered to some degree, but this requires advanced meta-programming techniques, such as staging or macros, that depend heavily on the underlying language technology. In this work we present a language-agnostic solution. We optimize the performance of parsing combinators with specializations of parsing strategies. For each combinator, we analyze the language parsed by the combinator and choose the most efficient parsing strategy. By adapting a parsing strategy for different parser combinators we achieve performance comparable to that of hand-written or optimized parsers while preserving the advantages of parsers combinators.
Czech name
—
Czech description
—
Classification
Type
J<sub>imp</sub> - Article in a specialist periodical, which is included in the Web of Science database
CEP classification
—
OECD FORD branch
10201 - Computer sciences, information science, bioinformathics (hardware development to be 2.2, social aspect to be 5.8)
Result continuities
Project
—
Continuities
I - Institucionalni podpora na dlouhodoby koncepcni rozvoj vyzkumne organizace
Others
Publication year
2018
Confidentiality
S - Úplné a pravdivé údaje o projektu nepodléhají ochraně podle zvláštních právních předpisů
Data specific for result type
Name of the periodical
Science of Computer Programming
ISSN
0167-6423
e-ISSN
1872-7964
Volume of the periodical
161
Issue of the periodical within the volume
September
Country of publishing house
NL - THE KINGDOM OF THE NETHERLANDS
Number of pages
32
Pages from-to
57-88
UT code for WoS article
000434742900005
EID of the result in the Scopus database
2-s2.0-85039420025