Verified, executable parsing

Aditi Barthwal*, Michael Norrish

*Corresponding author for this work

    Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

    32 Citations (Scopus)

    Abstract

    We describe the mechanisation of an SLR parser produced by a parser generator, covering background properties of context-free languages and grammars, as well as the construction of an SLR automaton. Among the various properties proved about the parser we show, in particular, soundness: if the parser results in a parse tree on a given input, then the parse tree is valid with respect to the grammar, and the leaves of the parse tree match the input; completeness: if the input is in the language of the grammar then the parser constructs the correct parse tree for the input with respect to the grammar; and non-ambiguity: grammars successfully converted to SLR automata are unambiguous. We also develop versions of the algorithms that are executable by automatic translation from HOL to SML. These alternative versions of the algorithms require some interesting termination proofs.

    Original languageEnglish
    Title of host publicationProgramming Languages and Systems - 18th European Symposium on Programming, ESOP 2009, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009, Proceedings
    Pages160-174
    Number of pages15
    DOIs
    Publication statusPublished - 2009
    Event18th European Symposium on Programming, ESOP 2009 - York, United Kingdom
    Duration: 22 Mar 200929 Mar 2009

    Publication series

    NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
    Volume5502
    ISSN (Print)0302-9743
    ISSN (Electronic)1611-3349

    Conference

    Conference18th European Symposium on Programming, ESOP 2009
    Country/TerritoryUnited Kingdom
    CityYork
    Period22/03/0929/03/09

    Fingerprint

    Dive into the research topics of 'Verified, executable parsing'. Together they form a unique fingerprint.

    Cite this