๐ฎ
๐ฎ
The Ethereal
LL(1) Parsing with Derivatives and Zippers
November 28, 2019 ยท The Ethereal ยท ๐ arXiv.org
"No code URL or promise found in abstract"
Evidence collected by the PWNC Scanner
Authors
Romain Edelmann, Jad Hamza, Viktor Kunฤak
arXiv ID
1911.12737
Category
cs.FL: Formal Languages
Cross-listed
cs.DS
Citations
3
Venue
arXiv.org
Last Checked
2 months ago
Abstract
In this paper, we present an efficient, functional, and formally verified parsing algorithm for LL(1) context-free expressions based on the concept of derivatives of formal languages. Parsing with derivatives is an elegant parsing technique, which, in the general case, suffers from cubic worst-case time complexity and slow performance in practice. We specialise the parsing with derivatives algorithm to LL(1) context-free expressions, where alternatives can be chosen given a single token of lookahead. We formalise the notion of LL(1) expressions and show how to efficiently check the LL(1) property. Next, we present a novel linear-time parsing with derivatives algorithm for LL(1) expressions operating on a zipper-inspired data structure. We prove the algorithm correct in Coq and present an implementation as a parser combinators framework in Scala, with enumeration and pretty printing capabilities.
Community Contributions
Found the code? Know the venue? Think something is wrong? Let us know!
๐ Similar Papers
In the same crypt โ Formal Languages
๐ฎ
๐ฎ
The Ethereal
Supervisor Synthesis to Thwart Cyber Attack with Bounded Sensor Reading Alterations
๐ฎ
๐ฎ
The Ethereal
An Abstraction-Based Framework for Neural Network Verification
๐ฎ
๐ฎ
The Ethereal
Recurrent Neural Networks as Weighted Language Recognizers
๐ฎ
๐ฎ
The Ethereal
TeSSLa: Temporal Stream-based Specification Language
๐ฎ
๐ฎ
The Ethereal