License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2023.20
URN: urn:nbn:de:0030-drops-182138
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2023/18213/
Mishra, Ashish ;
Jagannathan, Suresh
Morpheus: Automated Safety Verification of Data-Dependent Parser Combinator Programs
Abstract
Parser combinators are a well-known mechanism used for the compositional construction of parsers, and have shown to be particularly useful in writing parsers for rich grammars with data-dependencies and global state. Verifying applications written using them, however, has proven to be challenging in large part because of the inherently effectful nature of the parsers being composed and the difficulty in reasoning about the arbitrarily rich data-dependent semantic actions that can be associated with parsing actions. In this paper, we address these challenges by defining a parser combinator framework called Morpheus equipped with abstractions for defining composable effects tailored for parsing and semantic actions, and a rich specification language used to define safety properties over the constituent parsers comprising a program. Even though its abstractions yield many of the same expressivity benefits as other parser combinator systems, Morpheus is carefully engineered to yield a substantially more tractable automated verification pathway. We demonstrate its utility in verifying a number of realistic, challenging parsing applications, including several cases that involve non-trivial data-dependent relations.
BibTeX - Entry
@InProceedings{mishra_et_al:LIPIcs.ECOOP.2023.20,
author = {Mishra, Ashish and Jagannathan, Suresh},
title = {{Morpheus: Automated Safety Verification of Data-Dependent Parser Combinator Programs}},
booktitle = {37th European Conference on Object-Oriented Programming (ECOOP 2023)},
pages = {20:1--20:27},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-281-5},
ISSN = {1868-8969},
year = {2023},
volume = {263},
editor = {Ali, Karim and Salvaneschi, Guido},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2023/18213},
URN = {urn:nbn:de:0030-drops-182138},
doi = {10.4230/LIPIcs.ECOOP.2023.20},
annote = {Keywords: Parsers, Verification, Domain-specific languages, Functional programming, Refinement types, Type systems}
}
Keywords: |
|
Parsers, Verification, Domain-specific languages, Functional programming, Refinement types, Type systems |
Collection: |
|
37th European Conference on Object-Oriented Programming (ECOOP 2023) |
Issue Date: |
|
2023 |
Date of publication: |
|
11.07.2023 |