Row-Polymorphic Types for Strategic Rewriting

03/23/2021
by   Rongxiao Fu, et al.
0

We present a type system for strategy languages that express program transformations as compositions of rewrite rules. Our row-polymorphic type system assists compiler engineers to write correct strategies by statically rejecting non meaningful compositions of rewrites that otherwise would fail during rewriting at runtime. Furthermore, our type system enables reasoning about how rewriting transforms the shape of the computational program. We present a formalization of our language at its type system and demonstrate its practical use for expressing compiler optimization strategies. Our type system builds the foundation for many interesting future applications, including verifying the correctness of program transformations and synthesizing program transformations from specifications encoded as types.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/27/2023

Traced Types for Safe Strategic Rewriting

Strategy languages enable programmers to compose rewrite rules into stra...
research
05/24/2023

Invited Paper: Initial Steps Toward a Compiler for Distributed Programs

In the Hydro project we are designing a compiler toolkit that can optimi...
research
11/08/2017

Correctness of Speculative Optimizations with Dynamic Deoptimization

High-performance dynamic language implementations make heavy use of spec...
research
02/16/2018

Compositional Verification of Compiler Optimisations on Relaxed Memory

A valid compiler optimisation transforms a block in a program without in...
research
10/18/2019

Gradual Typing for Extensibility by Rows

This work studies gradual typing for row types and row polymorphism. Key...
research
06/15/2021

Introducing Type Properties

In type theory, we can express many practical ideas by attributing some ...
research
07/18/2020

PaSh: Light-touch Data-Parallel Shell Processing

This paper presents PaSh, a system for parallelizing POSIX shell scripts...

Please sign up or login with your details

Forgot password? Click here to reset