Verification of Program Transformations with Inductive Refinement Types

Research output: Contribution to journalJournal articleResearchpeer-review

Documents

  • Fulltext

    Accepted author manuscript, 751 KB, PDF document

High-level transformation languages like Rascal include expressive features for manipulating large abstract syntax trees: first-class traversals, expressive pattern matching, backtracking, and generalized iterators. We present the design and implementation of an abstract interpretation tool,Rabit, for verifying inductive type and shape properties for transformations written in such languages. We describe how to perform abstract interpretation based on operational semantics, specifically focusing on the challenges arising when analyzing the expressive traversals and pattern matching.Finally, we evaluate Rabit on a series of transformations (normalization, desugaring, refactoring, code generators, type inference, etc.) showing that we can effectively verify stated properties.

Original languageEnglish
Article number5
JournalACM Transactions on Software Engineering and Methodology
Volume30
Issue number1
Number of pages33
ISSN1049-331X
DOIs
Publication statusPublished - 2021

Bibliographical note

Publisher Copyright:
© 2021 ACM.

    Research areas

  • abstract interpretation, static analysis, Transformation languages

ID: 285381548