An Introduction to Learning from Programs

Tutorial Speaker

Marc Brockschmidt is a Senior Researcher in the Machine Intelligence and Programming Principles and Tools groups at Microsoft Research Cambridge (UK). He obtained his PhD studying formal methods that can automatically prove termination of Java programs. Surprisingly, that did work substantially less well than manually proving termination of Java programs. He thus moved on to study how computers can learn the skills that make humans better at programming than machines.


Deep Learning has revolutionised the processing of images, speech, text and Go, but had no widespread impact on the analysis of programs yet. I will give a short introduction to relevant techniques from related machine learning areas (primarily, natural language processing), and then show how they can be integrated into software engineering and static analysis tools. Finally, I will cover how to apply machine learning to speed up search methods such as SMT solving and program synthesis.