A University of Cambridge and Microsoft Research team claims to be on a direct path to building systems that can write computer programs. Based on artificial intelligence, their “DeepCoder” is a machine learning system with the ability to write its own code. The paper DeepCoder: Learning to write programs was written by Matej Balog, University of Cambridge, and Alexander Gaunt, Marc Brockschmidt, Sebastian Nowozin, and Daniel Tarlow from Microsoft Research.

DeepCoder is said to employ program synthesis, i.e. creating new programs by piecing together lines of code taken from existing software – just like a programmer might do given a steady supply of pizzas and beer. By contrast, given no more than a list of inputs and outputs for each code fragment, DeepCoder is claimed to learn which pieces of code were needed to achieve the desired result overall.

The authors said that in their work, they are proposing two main ideas:
  1. learn to induce programs; that is, use a corpus of program induction problems to learn strategies that generalize across problems;
  2. integrate neural network architectures with search-based techniques rather than replace them.
The programs were inspired by simple tasks appearing on real programming competition websites, they said, and were intended to illustrate the expressive power of their Domain Specific Language (DSL). The authors also provided a section showing example programs in the DSL, with input/output examples and descriptions.

In good Cambridge fashion, practical use of the new AI contraption  is “limited at this time” so don’t stop coding just now.