DeepCoder: Learning to Write Programs
This addresses the challenge of automated program synthesis for programming competitions, though it is incremental as it builds on existing search methods.
The paper tackles the problem of solving programming competition-style problems from input-output examples by training a neural network to predict program properties and augmenting search techniques, resulting in an order of magnitude speedup over baselines and solving problems comparable to the simplest on competition websites.
We develop a first line of attack for solving programming competition-style problems from input-output examples using deep learning. The approach is to train a neural network to predict properties of the program that generated the outputs from the inputs. We use the neural network's predictions to augment search techniques from the programming languages community, including enumerative search and an SMT-based solver. Empirically, we show that our approach leads to an order of magnitude speedup over the strong non-augmented baselines and a Recurrent Neural Network approach, and that we are able to solve problems of difficulty comparable to the simplest problems on programming competition websites.