AI can write its own code by stealing from other programs

Researchers at Microsoft and Cambridge University have built a highly sophisticated computer called DeepCoder that can now allow machines to write their own programs. This is aimed to make job easier for users who don’t know programming languages well enough to use them efficiently, or even help people having no experience in writing simple coding programs.

“All of a sudden people could be so much more productive,” says Armando Solar-Lezama at the Massachusetts Institute of Technology, who was not involved in the work. “They could build systems that it [would be] impossible to build before.”

The paper, DeepCoder: Learning to Write Programs, is a basic system with some limitations according to the researchers. However, it is a significant step forward in the world of coding and artificial intelligence (AI).

DeepCoder relies on a method called program synthesis, which allows the software to create programs by ‘stealing’ lines of code from existing programs, which is similar to what many human programmers do. By giving the AI some basic inputs and outputs, the system itself determines what code is needed to achieve the desired effect and hunts it down.

According to the researchers, DeepCoder also created working programs in fractions of a second, which means that it could allow non-coders to simply describe an idea for a program and let the system build it, says Marc Brockschmidt, one of DeepCoder’s creators at Microsoft Research in Cambridge, UK. Further, DeepCoder learns which combinations of source code work and which ones don’t as it goes along, and it improves every time it tries a new problem.

Currently, DeepCoder can only handle tasks that can be solved in around five lines of code.

“We foresee many extensions of DeepCoder…and are optimistic about the future prospects of using machine learning to synthesise programs,” says Microsoft and Cambridge computer scientists.

Brockschmidt hopes that future versions of DeepCoder will make it very easy to build basic programs that scrape information from websites, for example, without a programmer having to spend time to the task.

“The potential for automation that this kind of technology offers could really signify an enormous [reduction] in the amount of effort it takes to develop code,” says Solar-Lezama.

The possibilities of such a system will simply automate the tedious part of coding, freeing up the programmer to work on more sophisticated problems.

Source: New Scientist