Type-Changing Rewriting and Semantics-Preserving Transformation

Sean Leather, Johan Jeuring, Andres Löh, Bram Schuur

    Research output: Book/ReportReportAcademic

    Abstract

    We have identified a class of whole-program transformations that are regular in
    structure and require changing the types of terms throughout a program while simultaneously preserving the initial semantics after transformation. This class of transformations cannot be safely performed with typical term rewriting techniques, which do not allow for changing the types of terms.
    In this paper, we present a formalization of type-and-transform systems, an automated approach to the whole-program transformation of terms of one type to terms of a different, isomorphic type using type-changing rewrite rules. A type-and-transform system defines typing and semantics relations between all corresponding source and target subprograms such that a complete transformation guarantees that the whole programs have equivalent types and semantics. We describe the type-and-transform
    system for the lambda calculus with let-polymorphism and general recursion, including several examples from the literature and properties of the system.
    Original languageEnglish
    Place of PublicationUtrecht
    PublisherUU BETA ICS Departement Informatica
    Number of pages40
    Publication statusPublished - 2015

    Publication series

    NameTechnical Report Series
    PublisherUU Beta ICS Departement Informatica
    No.UU-CS-2015-012
    ISSN (Print)0924-3275

    Keywords

    • automatic program transformation
    • type-changing rewriting
    • semantics-preserving program transformation
    • type-and-transform systems

    Fingerprint

    Dive into the research topics of 'Type-Changing Rewriting and Semantics-Preserving Transformation'. Together they form a unique fingerprint.

    Cite this