2015
DOI: 10.2197/ipsjjip.23.505
|View full text |Cite
|
Sign up to set email alerts
|

Packrat Parsing with Elastic Sliding Window

Abstract: Packrat parsing is a linear-time implementation method of recursive descent parsers. The trick is a memoization mechanism, where all parsing results are memorized to avoid redundant parsing in cases of backtracking. An arising problem is extremely huge heap consumption in memoization, resulting in the fact that the cost of memoization is likely to outweigh its benefits. In many cases, developers need to make a difficult choice to abandon packrat parsing despite the possible exponential time parsing. Elastic pa… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
25
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
3
3
2
1

Relationship

4
5

Authors

Journals

citations
Cited by 21 publications
(26 citation statements)
references
References 8 publications
1
25
0
Order By: Relevance
“…In the sliding window, memoized nodes are expired if the parse moves forward in the window size. Our previous work [16] confirms both the linear time parsing and the constant memory consumption if the window size is large enough to cover the length of backtracking. The Nez parser uses the sliding window for memoization, and allows the garbage collector to collect expired nodes.…”
Section: Garbage Collectionsupporting
confidence: 68%
See 1 more Smart Citation
“…In the sliding window, memoized nodes are expired if the parse moves forward in the window size. Our previous work [16] confirms both the linear time parsing and the constant memory consumption if the window size is large enough to cover the length of backtracking. The Nez parser uses the sliding window for memoization, and allows the garbage collector to collect expired nodes.…”
Section: Garbage Collectionsupporting
confidence: 68%
“…Nez is a PEG-based parser generator that has a language support for the AST operators. The Nez parser is written in Java, and integrated with enhanced packrat parsing with sliding window, presented in [16], and the transactional AST machine with synchronous memoization, described in Sections 4 and 5.…”
Section: Parser Implementationmentioning
confidence: 99%
“…The execution time is measured by System.nanoTime() in Java APIs. The Nez parser that we have tested is based on [10].…”
Section: Performance Studymentioning
confidence: 99%
“…In [27] concept of elastic sliding window is used and it is based upon the observation of worst longest backtrack length. Particularly author noted that if a window in the form of small memorization table slides and covers the longest backtrack then redundant calls are avoided since the storage is sufficient enough to store all the results.…”
Section: Literature Surveymentioning
confidence: 99%