Computers program computers
on
This is made possible by combining machine learning with existing enormous public software databases. These databases contain millions of programs comprising many billion lines of code – what Vechev calls “Big Code.”
Computers can recognize patterns in this existing code and learn which patterns are used in specific contexts. That way they can learn the meaning of the code and the rules governing its use. This is more or less comparable to how translation programs like Google Translate analyzes words in their context in order to derive the meaning and the usage rules.
Future programming assistants might work in the same way as the autocomplete functions that help us write text messages on our smartphones. For example, the programmer could write the first hundred or so lines of code, and then the assistant would propose a possible continuation which the programmer could accept or reject.
The core element of this sort of assistant is a probability model constructed on the basis of a large number of existing programs and code fragments. The model is then used to suggest a continuation to the code generated by the programmer. Vechev and his team have already developed assistants of this sort, such as the freely available online programs JS Nice and APK Deguard. They help users test their code and show them options for improving their software.

Discussion (0 comments)