Verification of high-level transformations with inductive refinement types

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

Research output: Conference Article in Proceeding or Book/Report chapterArticle in proceedingsResearchpeer-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.
Original languageEnglish
Title of host publicationProceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, {GPCE} 2018, Boston, MA, USA, November 5-6, 2018
Number of pages14
PublisherAssociation for Computing Machinery
Publication date2018
Pages147-160
ISBN (Print)978-1-4503-6045-6
DOIs
Publication statusPublished - 2018

Keywords

  • high-level transformation languages
  • abstract syntax trees
  • abstract interpretation
  • operational semantics
  • code transformations verification

Fingerprint

Dive into the research topics of 'Verification of high-level transformations with inductive refinement types'. Together they form a unique fingerprint.

Cite this