2019
DOI: 10.1145/3341686
|View full text |Cite
|
Sign up to set email alerts
|

Narcissus: correct-by-construction derivation of decoders and encoders from binary formats

Abstract: It is a neat result from functional programming that libraries of parser combinators can support rapid construction of decoders for quite a range of formats. With a little more work, the same combinator program can denote both a decoder and an encoder. Unfortunately, the real world is full of gnarly formats, as with the packet formats that make up the standard Internet protocol stack. Most past parser-combinator approaches cannot handle these formats, and the few exceptions require redundancy ś one part of the… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
17
0

Year Published

2020
2020
2021
2021

Publication Types

Select...
6
2

Relationship

0
8

Authors

Journals

citations
Cited by 21 publications
(17 citation statements)
references
References 46 publications
0
17
0
Order By: Relevance
“…These include Nail [34], which builds upon Hammer [35], and produces parser combinators for grammars specified in domainspecific languages, using stream transformations and arenas to support complex protocols. Narcissus [36] supports multi-stage parsing with a framework for the Coq proof assistant.…”
Section: R Wmentioning
confidence: 99%
“…These include Nail [34], which builds upon Hammer [35], and produces parser combinators for grammars specified in domainspecific languages, using stream transformations and arenas to support complex protocols. Narcissus [36] supports multi-stage parsing with a framework for the Coq proof assistant.…”
Section: R Wmentioning
confidence: 99%
“…Approaches are starting to be developed that give stronger type guarantees. Narcissus [8] is a parser combinator-style framework for the Coq proof assistant [9], enabling derivation of veriable encoders and decoders. Beyond likely usability barriers to the adoption of a framework based on a non-mainstream tool such as Coq, which we turn to in Section 4, Narcissus does not provide support for persistent storage throughout the parsing process.…”
Section: Describing Protocol Datamentioning
confidence: 99%
“…6 This can easily be replaced by a notion of end of stream character if the input bound is unknown. 8. star (e, s,T 0 ,T s ) with T 0 S. To keep the star structure, we ask forT s to be either of type star or skip.…”
Section: Pre-astmentioning
confidence: 99%
“…Usually, as we mentioned and as in [11] and [15], the parsing is defined as a relationship between the inputs and the outputs that verifies a certain number of derivation rules corresponding to all the parsing cases. Lemmas that link the properties of the grammar to the parsing relationship 8 8 Those lemmas are the following : (1) If the parsing fails, the grammar is of type P ⊥ (2) If the parsing succeed without consuming any input, the grammar is of type P 0 (3) If the parsing succeed consuming at least one token, the grammar is of type P >0 . are then proved to ensure that any algorithm following the parsing rules would terminate.…”
Section: The Definition Of Parsingmentioning
confidence: 99%