Understanding Source Code through Machine Learning to Create Smart Software Engineering Tools
Miltiadis Allamanis (School of Informatics University of Edinburgh Edinburgh)
Abstruct: Source code is a highly structured object but so far it has mostly been analyzed deductively. What if we view source code from a probabilistic lens? This question has recently opened a new interdisciplinary field combining machine learning, natural language processing, programming language research and software engineering. By probabilistically modeling elements of source code, we can extract the implicit knowledge embedded in code repositories and create novel machine learning-based software engineering tools. In this talk, I will discuss two instances of such tools.
Software developers care deeply about coding conventions. In the first part, I present a neural network that learns from existing code and successfully suggests names for variables, methods and classes. The resulting model opens new possibilities for machine learning-based distributed representations of code artifacts. In the second part, I present a syntactic neural probabilistic model of source code snippets and natural language. This model maps natural language to source code. Such models may have applications in code search and code synthesis. I demonstrate its performance on two retrieval tasks: retrieving source code snippets given a natural language query, and retrieving natural language descriptions given a source code query.
Biography: Miltiadis (Miltos) Allamanis is a PhD candidate in the School of Informatics in the University of Edinburgh, UK, funded by Microsoft Research. His research interests concern applying and creating new machine learning and natural language processing methods to create novel and smart software engineering tools. In his PhD ?advised by Charles Sutton? he works on machine learning models of source code and their applications in programming languages and software engineering. Miltos has previously interned in Microsoft Research (Summer 2014 in Cambridge, UK and Spring 2015 in Redmond, WA, USA). He holds an MPhil in Advanced Computer Science from the University of Cambridge, UK and a DipEng in Electrical and Computer Engineering from the Aristotle University of Thessaloniki, Greece.