2020
DOI: 10.1007/978-3-030-40608-0_30
|View full text |Cite
|
Sign up to set email alerts
|

Simplified Parsing Expression Derivatives

Abstract: This paper presents a new derivative parsing algorithm for parsing expression grammars; this new algorithm is both simpler and faster than the existing parsing expression derivative algorithm presented by Moss[12]. This new algorithm improves on the worst-case space and runtime bounds of the previous algorithm by a linear factor, as well as decreasing runtime by about half in practice. A proof of correctness for the new algorithm is included in this paper, a result not present in earlier work.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2020
2020
2023
2023

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 6 publications
(7 citation statements)
references
References 16 publications
0
7
0
Order By: Relevance
“…This should provide more tools for PEG's user to verify whether a grammar correctly models a given language of interest. We still need to refine this work and to further investigate how it compares to other works that explored the use of derivatives in PEGs [9,21] and in CFGs [19].…”
Section: Discussionmentioning
confidence: 99%
See 2 more Smart Citations
“…This should provide more tools for PEG's user to verify whether a grammar correctly models a given language of interest. We still need to refine this work and to further investigate how it compares to other works that explored the use of derivatives in PEGs [9,21] and in CFGs [19].…”
Section: Discussionmentioning
confidence: 99%
“…One useful technique to predict the behavior of a grammar is to automatically generate strings from it and check whether the results match the intuitive behavior. There are recently works implementing derivative parsers [3] for PEGs to accomplish this task [9,21]. One of the main difficulties is precisely the backtrack mechanism in PEGs.…”
Section: B Symbolic Executions and Derivativesmentioning
confidence: 99%
See 1 more Smart Citation
“…al. [41] presented another algorithm that can parse the PEG's algorithm with worst-case space and rum time complexity of linear time. Lurent et.…”
Section: Literature Reviewmentioning
confidence: 99%
“…Although there are at least three other Python packages for generating PEG parsers, namely Arpeggio (http://www.igordejanovic.net/Arpeggio), Grako (https://bitbucket.org/ neogeny/grako), and pyPEG (https://fdik.org/pyPEG), our implementation (https://github.com/ wieczorekw/wieczorekw.github.io/tree/master/PEG) is worth noting for its simple usage (integration with Python syntax via native operators) and because it is dozens of times faster in processing long strings, as will be shown in detail in Section 3.3. In addition to Python libraries, to enrich the research, a library named EGG (https://github.com/bruceiv/egg/tree/deriv) written in C++ was used for comparison, in which an expression has to be compiled into machine code before it is used [14].…”
Section: Introductionmentioning
confidence: 99%