arrow
Return

Verification of Program Transformations with Inductive Refinement Types

delete2021-01-20
delete0
delete
OA
AI
A
Ahmad Salim Al-Sibahi *
J
Jensen, Thomas P.
A
Aleksandar S. Dimovski
A
Andrzej Wąsowski
DOI:10.1145/3409805delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
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.
Keywords:
Transformation languages
abstract interpretation
static analysis
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

A
ACM Transactions on Software Engineering and Methodology
IF:
6.2
Papers:
1.2K
Citations:
3.4K

Organization

U
University of Copenhagen
Scholars:
7.6W
Papers: 6.6W
Citations: 86
I
IT University Copenhagen
Scholars:
353
Papers: 345
Citations: 13