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

04/03/2018
by   Ashwin J. Vijayakumar, et al.
0

Synthesizing user-intended programs from a small number of input-output examples is a challenging problem with several important applications like spreadsheet manipulation, data wrangling and code refactoring. Existing synthesis systems either completely rely on deductive logic techniques that are extensively hand-engineered or on purely statistical models that need massive amounts of data, and in general fail to provide real-time synthesis on challenging benchmarks. In this work, we propose Neural Guided Deductive Search (NGDS), a hybrid synthesis technique that combines the best of both symbolic logic techniques and statistical models. Thus, it produces programs that satisfy the provided specifications by construction and generalize well on unseen examples, similar to data-driven systems. Our technique effectively utilizes the deductive search framework to reduce the learning problem of the neural component to a simple supervised learning setup. Further, this allows us to both train on sparingly available real-world data and still leverage powerful recurrent neural network encoders. We demonstrate the effectiveness of our method by evaluating on real-world customer scenarios by synthesizing accurate programs with up to 12x speed-up compared to state-of-the-art systems.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/28/2020

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

Program synthesis is challenging largely because of the difficulty of se...
research
12/31/2019

Towards Neural-Guided Program Synthesis for Linear Temporal Logic Specifications

Synthesizing a program that realizes a logical specification is a classi...
research
09/08/2018

Neural Guided Constraint Logic Programming for Program Synthesis

Synthesizing programs using example input/outputs is a classic problem i...
research
07/18/2018

Structuring the Synthesis of Heap-Manipulating Programs

This paper describes a deductive approach to synthesizing imperative pro...
research
07/18/2018

Structuring the Synthesis of Heap-Manipulating Programs - Extended Version

This paper describes a deductive approach to synthesizing imperative pro...
research
05/28/2019

NIL: Learning Nonlinear Interpolants

Nonlinear interpolants have been shown useful for the verification of pr...
research
09/12/2019

Quantitative Programming by Examples

Programming-by-Example (PBE) systems synthesize an intended program in s...

Please sign up or login with your details

Forgot password? Click here to reset