Verification of Program Transformations with Inductive Refinement Types

Ahmad Salim Al-Sibahi, Thomas P. Jensen, Aleksandar Dimovski, Andrzej Wasowski

Publikation: Artikel i tidsskrift og konference artikel i tidsskriftTidsskriftartikelForskningpeer review

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.
OriginalsprogEngelsk
Artikelnummer5
TidsskriftACM Transactions on Software Engineering and Methodology
Vol/bind30
Udgave nummer1
Sider (fra-til)1-33
ISSN1049-331X
DOI
StatusUdgivet - 2021

Emneord

  • transformation languages
  • abstract interpretation
  • static analysis

Fingeraftryk

Dyk ned i forskningsemnerne om 'Verification of Program Transformations with Inductive Refinement Types'. Sammen danner de et unikt fingeraftryk.

Citationsformater