Automatic Program Synthesis of Long Programs with a Learned Garbage Collector
arXiv:1809.04682
Abstract
We consider the problem of generating automatic code given sample input-output pairs. We train a neural network to map from the current state and the outputs to the program's next statement. The neural network optimizes multiple tasks concurrently: the next operation out of a set of high level commands, the operands of the next statement, and which variables can be dropped from memory. Using our method we are able to create programs that are more than twice as long as existing state-of-the-art solutions, while improving the success rate for comparable lengths, and cutting the run-time by two orders of magnitude. Our code, including an implementation of various literature baselines, is publicly available at https://github.com/amitz25/PCCoder
arXiv commentPublished at NIPS 2018
Cited by in corpus (15)
- Learning Compositional Rules via Neural Program Synthesis
- Write, Execute, Assess: Program Synthesis with a REPL
- Learning to Represent Programs with Property Signatures
- Synthesize, Execute and Debug: Learning to Repair for Neural Program Synthesis
- Program Synthesis with Pragmatic Communication
- Latent Programmer: Discrete Latent Codes for Program Synthesis
- BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration
- M3: Semantic API Migrations
- Representing Partial Programs with Blended Abstract Semantics
- Neural Program Synthesis with a Differentiable Fixer
- Learning Execution through Neural Code Fusion
- Learning to Combine Per-Example Solutions for Neural Program Synthesis
- Latent Execution for Neural Program Synthesis
- Unsupervised Program Synthesis for Images By Sampling Without Replacement
- Understanding in Artificial Intelligence