Verification of Program Transformations with Inductive Refinement Types

Publikation: Bidrag til tidsskriftTidsskriftartikelForskningfagfællebedømt

Standard

Verification of Program Transformations with Inductive Refinement Types. / Al-Sibahi, Ahmad Salim; Jensen, Thomas P.; Dimovski, Aleksandar S.; Wasowski, Andrzej.

I: ACM Transactions on Software Engineering and Methodology, Bind 30, Nr. 1, 5, 2021.

Publikation: Bidrag til tidsskriftTidsskriftartikelForskningfagfællebedømt

Harvard

Al-Sibahi, AS, Jensen, TP, Dimovski, AS & Wasowski, A 2021, 'Verification of Program Transformations with Inductive Refinement Types', ACM Transactions on Software Engineering and Methodology, bind 30, nr. 1, 5. https://doi.org/10.1145/3409805

APA

Al-Sibahi, A. S., Jensen, T. P., Dimovski, A. S., & Wasowski, A. (2021). Verification of Program Transformations with Inductive Refinement Types. ACM Transactions on Software Engineering and Methodology, 30(1), [5]. https://doi.org/10.1145/3409805

Vancouver

Al-Sibahi AS, Jensen TP, Dimovski AS, Wasowski A. Verification of Program Transformations with Inductive Refinement Types. ACM Transactions on Software Engineering and Methodology. 2021;30(1). 5. https://doi.org/10.1145/3409805

Author

Al-Sibahi, Ahmad Salim ; Jensen, Thomas P. ; Dimovski, Aleksandar S. ; Wasowski, Andrzej. / Verification of Program Transformations with Inductive Refinement Types. I: ACM Transactions on Software Engineering and Methodology. 2021 ; Bind 30, Nr. 1.

Bibtex

@article{02a5bfbcf490429ca2452717c30f78b6,
title = "Verification of Program Transformations with Inductive Refinement Types",
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. ",
keywords = "abstract interpretation, static analysis, Transformation languages",
author = "Al-Sibahi, {Ahmad Salim} and Jensen, {Thomas P.} and Dimovski, {Aleksandar S.} and Andrzej Wasowski",
note = "Publisher Copyright: {\textcopyright} 2021 ACM.",
year = "2021",
doi = "10.1145/3409805",
language = "English",
volume = "30",
journal = "ACM Transactions on Software Engineering and Methodology",
issn = "1049-331X",
publisher = "Association for Computing Machinery (ACM)",
number = "1",

}

RIS

TY - JOUR

T1 - Verification of Program Transformations with Inductive Refinement Types

AU - Al-Sibahi, Ahmad Salim

AU - Jensen, Thomas P.

AU - Dimovski, Aleksandar S.

AU - Wasowski, Andrzej

N1 - Publisher Copyright: © 2021 ACM.

PY - 2021

Y1 - 2021

N2 - 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.

AB - 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.

KW - abstract interpretation

KW - static analysis

KW - Transformation languages

U2 - 10.1145/3409805

DO - 10.1145/3409805

M3 - Journal article

AN - SCOPUS:85099877444

VL - 30

JO - ACM Transactions on Software Engineering and Methodology

JF - ACM Transactions on Software Engineering and Methodology

SN - 1049-331X

IS - 1

M1 - 5

ER -

ID: 285381548