“It can sometimes take teams of coders days to fix a single bug,” says Justin Gottschlich.
Microsoft is building basic code generation into its widely used software development tools, Facebook has made a system called Aroma that autocompletes small programs, and DeepMind has developed a neural network that can produce more efficient versions of simple algorithms than those devised by humans.
Working with a team from Intel, MIT and the Georgia Institute of Technology in Atlanta, he has developed a system called Machine Inferred Code Similarity, or MISIM, that can extract the meaning of a piece of code—what the code is telling the computer to do—in much the same way as natural-language processing (NLP) systems can read a paragraph written in English.
MISIM then uses a neural network to find other code that has a similar meaning.
MISIM is an exciting step forward, says Veselin Raychev, CTO at the Swiss-based company DeepCode, whose bug-catching tools—among the most advanced on the market—use neural networks trained on millions of programs to suggest improvements to coders as they write.
MISIM gets around this by using machine learning to spot similarities between programs rather than identifying bugs directly.
Combined with NLP, the ability to work with the meaning of code separately from its textual representation could one day let people write software simply by describing what they want to do in words, he says.