Metric Program Synthesis

06/13/2022
by   John Feser, et al.
0

We present a new domain-agnostic synthesis technique for generating programs from input-output examples. Our method, called metric program synthesis, relaxes the well-known observational equivalence idea (used widely in bottom-up enumerative synthesis) into a weaker notion of observational similarity, with the goal of reducing the search space that the synthesizer needs to explore. Our method clusters programs into equivalence classes based on a distance metric and constructs a version space that compactly represents "approximately correct" programs. Then, given a "close enough" program sampled from this version space, our approach uses a distance-guided repair algorithm to find a program that exactly matches the given input-output examples. We have implemented our proposed metric program synthesis technique in a tool called SyMetric and evaluate it in three different domains considered in prior work. Our evaluation shows that SyMetric outperforms other domain-agnostic synthesizers that use observational equivalence and that it achieves results competitive with domain-specific synthesizers that are either designed for or trained on those domains.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/21/2017

Synthesizing Imperative Programs from Examples Guided by Static Analysis

We present a novel algorithm that synthesizes imperative programs for in...
research
09/07/2018

Relational Program Synthesis

This paper proposes relational program synthesis, a new problem that con...
research
10/21/2017

Program Synthesis using Abstraction Refinement

We present a new approach to example-guided program synthesis based on c...
research
07/13/2017

On Repair with Probabilistic Attribute Grammars

Program synthesis and repair have emerged as an exciting area of researc...
research
11/21/2017

Program Synthesis using Conflict-Driven Learning

We propose a new conflict-driven program synthesis technique that is cap...
research
03/03/2020

Data Migration using Datalog Program Synthesis

This paper presents a new technique for migrating data between different...
research
09/25/2017

Glass-Box Program Synthesis: A Machine Learning Approach

Recently proposed models which learn to write computer programs from dat...

Please sign up or login with your details

Forgot password? Click here to reset