2011
DOI: 10.2168/lmcs-7(2:18)2011
|View full text |Cite
|
Sign up to set email alerts
|

TRX: A Formally Verified Parser Interpreter

Abstract: Abstract. Parsing is an important problem in computer science and yet surprisingly little attention has been devoted to its formal verification. In this paper, we present TRX: a parser interpreter formally developed in the proof assistant Coq, capable of producing formally correct parsers. We are using parsing expression grammars (PEGs), a formalism essentially representing recursive descent parsing, which we consider an attractive alternative to context-free grammars (CFGs). From this formalization we can ext… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
17
0

Year Published

2012
2012
2020
2020

Publication Types

Select...
4
1
1

Relationship

0
6

Authors

Journals

citations
Cited by 20 publications
(17 citation statements)
references
References 17 publications
0
17
0
Order By: Relevance
“…Our focus is on constructive definitions that yield easy implementations. The notions of structural well-formedness and pattern well-formedness are, along with the use of abstract proof-of-parse trees, the major differences with respect to the verified PEG parser TRX [15].…”
Section: Well-formed Peg Grammarsmentioning
confidence: 99%
See 4 more Smart Citations
“…Our focus is on constructive definitions that yield easy implementations. The notions of structural well-formedness and pattern well-formedness are, along with the use of abstract proof-of-parse trees, the major differences with respect to the verified PEG parser TRX [15].…”
Section: Well-formed Peg Grammarsmentioning
confidence: 99%
“…In contrast with prior work [11,15], we choose not to define parsing as a relationship between an expression, a string and a result, but as a step of a parsing function that corresponds to the actual computation and that verifies a certain number of properties. To do so, we choose to define an output type that represents a computational path, that we call an abstract syntax tree as a parse tree that represent the full trace of the parse covering both successful and failed branches.…”
Section: Abstract Syntax Trees and Parsingmentioning
confidence: 99%
See 3 more Smart Citations