DeepAI AI Chat
Log In Sign Up

Learning to Combine Per-Example Solutions for Neural Program Synthesis

by   Disha Shrivastava, et al.

The goal of program synthesis from examples is to find a computer program that is consistent with a given set of input-output examples. Most learning-based approaches try to find a program that satisfies all examples at once. Our work, by contrast, considers an approach that breaks the problem into two stages: (a) find programs that satisfy only one example, and (b) leverage these per-example solutions to yield a program that satisfies all examples. We introduce the Cross Aggregator neural network module based on a multi-head attention mechanism that learns to combine the cues present in these per-example solutions to synthesize a global solution. Evaluation across programs of different lengths and under two different experimental settings reveal that when given the same time budget, our technique significantly improves the success rate over PCCoder [Zohar et. al 2018] and other ablation baselines. The code, data and trained models for our work can be found at


page 2

page 18


Synthesizing Imperative Programs from Examples Guided by Static Analysis

We present a novel algorithm that synthesizes imperative programs for in...

Automatic Program Synthesis of Long Programs with a Learned Garbage Collector

We consider the problem of generating automatic code given sample input-...

SynGuar: Guaranteeing Generalization in Programming by Example

Programming by Example (PBE) is a program synthesis paradigm in which th...

Inductive Program Synthesis Over Noisy Data

We present a new framework and associated synthesis algorithms for progr...

Metric Program Synthesis

We present a new domain-agnostic synthesis technique for generating prog...

Learning to select examples for program synthesis

Program synthesis is a class of regression problems where one seeks a so...

PLANS: Robust Program Learning from Neurally Inferred Specifications

Recent years have seen the rise of statistical program learning based on...