Skip to search boxSkip to navigationSkip to main content

Verification of Program Transformations with Inductive Refinement Types

Research Output:
Journal Article or Conference Article in Journal
Journal article
Peer-review

Open access

Publication Information

Output type

Research Output:
Journal Article or Conference Article in Journal
Journal article
Peer-review

Original language

English

Article number

5

Pages from-to (Number of pages)

Pages 1-33

Journal (Volume, Issue Number)

ACM Transactions on Software Engineering and Methodology (Volume 30, Issue 1)

Publication milestones

  • Published - 2021

Publication status

Published - 2021

ISSN

1049-331X

Publication IDs

  • Scopus: 85099877444

Abstract

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.

Publication metrics

PlumX, opens in new tab

Captures
6
Citations
1