University of Stuttgart, Germany
Title:
Neuro-Symbolic Developer Tools for Analyzing, Executing, and Repairing Code
Abstract:
Developer productivity and software quality critically depend on effective software development tools. Traditional, symbolic program analysis tools are often limited in their ability to understand developer intention and rely on various hand-crafted heuristics. Neural software analysis addresses these limitations, but remains unaware of the formal semantics of a program and hence easily misses facts and rules that are actually well known. This talk argues that carefully combining neural and symbolic reasoning provides an effective means to address various challenging software development problems. To illustrate this point, I will describe our 8-year long journey of creating neuro-symbolic developer tools, ranging from learning-based bug detectors and type predictors, to our most recent work on learning-guided execution and program repair based on an autonomous LLM-based agent. I will discuss lessons learned on this journey and conclude with an outline of open challenges waiting to be addressed in order to close the gap between symbolic and neural software developer tools.
Biography:
Michael Pradel is a full professor at the 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 neural software analysis, analyzing web applications, dynamic analysis, and test generation. Michael has been recognized through the Ernst-Denert Software Engineering Award, an Emmy Noether grant by the German Research Foundation (DFG), an ERC Starting Grant, best/distinguished paper awards at FSE (3x), ISSTA, ASE, and ASPLOS, and by being named an ACM Distinguished Member.