Published September 8, 2021 | Version v2
Software Open

Synbit: Synthesizing Bidirectional Programs using Unidirectional Sketches (Artifact)

  • 1. Graduate School of Information Sciences, Tohoku University
  • 2. University of Bristol

Description

Artifact

This is the artifact of a paper "Synbit: Synthesizing Bidirectional Programs using Unidirectional Sketches", which is accepted by OOPSLA 2021.

 

Abstract

We propose a technique for synthesizing bidirectional programs from the corresponding unidirectional code plus a few input/output examples. The core ideas are: (1) constructing a sketch using the given unidirectional program as a specification, and (2) filling the sketch in a modular fashion by exploiting the properties of bidirectional programs. These ideas are enabled by our choice of programming language, HOBiT, which is specifically designed to maintain the unidirectional program structure in bidirectional programming, and keep the parts that control bidirectional behavior modular. To evaluate our approach, we implemented it in a tool called Synbit and used it to generate bidirectional programs for intricate microbenchmarks, as well as for a few larger, more realistic problems. We also compared Synbit to a state-of-the-art unidirectional synthesis tool on the task of synthesizing backward computations.

Files

artifact.zip

Files (350.6 kB)

Name Size Download all
md5:2c4e94b12dc8988aa6a55dc7427c24cf
350.6 kB Preview Download