Validating LR(1) Parsers

Abstract : An LR(1) parser is a finite-state automaton, equipped with a stack, which uses a combination of its current state and one lookahead symbol in order to determine which action to perform next. We present a validator which, when applied to a context-free grammar G and an automaton A, checks that A and G agree. Validating the parser pro-vides the correctness guarantees required by verified compilers and other high-assurance software that involves parsing. The validation process is independent of which technique was used to construct A. The validator is implemented and proved correct using the Coq proof assistant. As an application, we build a formally-verified parser for the C99 language.
Document type :
Conference papers
Complete list of metadatas

Cited literature [25 references]  Display  Hide  Download

https://hal.inria.fr/hal-01077321
Contributor : Xavier Leroy <>
Submitted on : Friday, October 24, 2014 - 2:22:58 PM
Last modification on : Friday, May 25, 2018 - 12:02:07 PM
Long-term archiving on : Sunday, January 25, 2015 - 10:26:29 AM

File

validated-parser.pdf
Files produced by the author(s)

Identifiers

Collections

Citation

Jacques-Henri Jourdan, François Pottier, Xavier Leroy. Validating LR(1) Parsers. ESOP 2012 - Programming Languages and Systems - 21st European Symposium on Programming, Mar 2012, Tallinn, Estonia. pp.397-416, ⟨10.1007/978-3-642-28869-2_20⟩. ⟨hal-01077321⟩

Share

Metrics

Record views

224

Files downloads

164