Effective tools can make software developers much more productive, but manually developing such
tools is difficult and time-consuming. This talk advocates a learning approach toward creating
developer tools. The basic idea is to consider the enormous amounts of existing code as training
data and to learn models that predict properties of code. The talk will present two examples of
learned developer tools. First, we present a learned bug detection technique, which predicts
whether a piece of code is correct or buggy. Second, we present a learned type prediction
technique, which predicts otherwise missing type annotations for code written in dynamically typed
languages. Both techniques make use of natural language information embedded in identifier names, a
rich source of knowledge ignored by traditional program analysis techniques. Evaluating the ideas
highly effective and even outperform traditionally developed techniques.
Michael Pradel is a full professor at University of Stuttgart, which he joined after a PhD at
ETH Zurich, a post-doc at UC Berkeley, an assistant professorship at TU Darmstadt, and a sabbatical
at Facebook. His research interests span software engineering, programming languages, security, and
machine learning, with a focus on tools and techniques for building reliable, efficient, and secure
software. In particular, he is interested in dynamic program analysis, test generation,
program analysis. Michael has been awarded the Software Engineering Award of the
Ernst-Denert-Foundation for his dissertation, the Emmy Noether grant by the German Research
Foundation (DFG), and an ERC Starting Grant.
University of Stuttgart, Powerwall Room, VISUS, cellar
The talk will be transmitted to Konstanz, Powerwall Room C202.