Fixes, Proofs and Humans: Results and Lessons from Transforming Programs
Add to Google Calendar
Software is increasingly a part of our daily lives, but software errors
remain expensive and costly. In this talk we consider three lenses for
improving software quality and reducing the cost of software maintenance.
We delve into not only approachable human studies (from software
readability judgments to medical imaging of developers) but also rigorous
and formal proof and invariant techniques (built atop static and dynamic
information). We focus, however, on recent results in automated program
repair, in which candidate fixes for software bugs are constructed using
focused analyses and program transformations. In each case we summarize
lessons learned and highlight reproducible research and key insights.
Programming languages are the interface between human developers and
software systems: program understanding and transformation are powerful
levers that can move the world of software quality.
Westley Weimer's primary research interest is advancing software quality
through both static and dynamic programming language approaches. He is
particularly concerned with automatic or minimally-guided techniques that
can scale and be applied easily to large, existing programs. He also works
to help programmers address defects, understand programs, and program
correctly. His research spans automated program repair, formal
verification, program improvement, human studies, and language feature
design. He received his PhD from Berkeley and now serves as an associate
professor at the University of Virginia. His work has led to over 8,400
citations, eight distinguished paper awards, four multi-conference research
awards, and one ten-year most influential paper award. He also enjoys
fencing and overacting.