Automatic Program Synthesis of Long Programs with a Learned Garbage
  Collector
  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
