In the last few years, with my colleagues at Nokia Bell Labs, I’ve been looking into how machine learning can help improve software development, helping developers write code better and faster by leveraging the large amounts of open source code that are now available online. We’ve covered various use cases including recommendation engines for open source software packages and code search engines to better find runnable usage examples based on programmer intent.
One particular area that I’ve found quite compelling has been the area of translating natural language into code. This idea fits in a wider body of work known in academic circles as “program synthesis”, and in the software development world as “AI pair programming”.