BUSTLE: Bottom-up program-Synthesis Through Learning-guided Exploration

07/28/2020
by   Augustus Odena, et al.
4

Program synthesis is challenging largely because of the difficulty of search in a large space of programs. Human programmers routinely tackle the task of writing complex programs by writing sub-programs and then analysing their intermediate results to compose them in appropriate ways. Motivated by this intuition, we present a new synthesis approach that leverages learning to guide a bottom-up search over programs. In particular, we train a model to prioritize compositions of intermediate values during search conditioned on a given set of input-output examples. This is a powerful combination because of several emergent properties: First, in bottom-up search, intermediate programs can be executed, providing semantic information to the neural network. Second, given the concrete values from those executions, we can exploit rich features based on recent work on property signatures. Finally, bottom-up search allows the system substantial flexibility in what order to generate the solution, allowing the synthesizer to build up a program from multiple smaller sub-programs. Overall, our empirical evaluation finds that the combination of learning and bottom-up search is remarkably effective, even with simple supervised learning approaches. We demonstrate the effectiveness of our technique on a new data set for synthesis of string transformation programs.

READ FULL TEXT

page 12

page 14

page 15

research
11/06/2016

Neuro-Symbolic Program Synthesis

Recent years have seen the proposal of a number of neural architectures ...
research
04/03/2018

Neural-Guided Deductive Search for Real-Time Program Synthesis from Examples

Synthesizing user-intended programs from a small number of input-output ...
research
12/01/2020

Latent Programmer: Discrete Latent Codes for Program Synthesis

In many sequence learning tasks, such as program synthesis and document ...
research
08/14/2023

Modular System Synthesis

This paper describes a way to improve the scalability of program synthes...
research
01/11/2022

Predictive Synthesis of API-Centric Code

Today's programmers, especially data science practitioners, make heavy u...
research
01/08/2023

A Divide-Align-Conquer Strategy for Program Synthesis

A major bottleneck in search-based program synthesis is the exponentiall...
research
05/28/2022

Learning from Self-Sampled Correct and Partially-Correct Programs

Program synthesis aims to generate executable programs that are consiste...

Please sign up or login with your details

Forgot password? Click here to reset