Presented annually to the author of the outstanding doctoral
dissertation in the area of Programming Languages.
The award includes a prize of $1,000.
2008: Two Awards Presented
Michael Bond, University of Texas at Austin. Diagnosing and Tolerating Bugs in Deployed Systems
Advisor: Kathyrn McKinley
Citation
"This dissertation makes several significant contributions to the problems of tracking down and tolerating software errors in deployed systems. It proposes a variety of techniques, ranging from a breakthrough, probabilistic method of compactly representing calling contexts, to novel techniques for tracking null pointers, to garbage collector modifications that let programs tolerate memory leaks. The evaluation committee was impressed by Michael's fresh perspective on these problems and the thorough experimental evaluation by which he backs up his claims. His research has already had broad adoption and impact, and we believe that his techniques will be brought to bear on a wide range of future applications."
Viktor Vafeiadis, University of Cambridge. Modular Fine-grained Concurrency Verification
Advisors: Alan Mycroft and Matthew Parkinson
Citation
"This dissertation introduces a novel logic for reasoning about concurrent shared-memory programs. This logic subsumes both rely/guarantee reasoning and separation logic in an elegant and natural manner. The dissertation establishes the semantic properties of the logic and demonstrates its applicability on a range of highly complex concurrent algorithms and data structures. The evaluation committee found the clarity of Viktor's presentation and the technical depth of his results particularly compelling, and we believe that this work creates a foundation for new tools and automated techniques for reasoning about concurrent programs."
2007: Swarat
Chaudhuri, University of Pennsylvania. Logics and Algorithms for Software Model Checking
Advisor: Rajeev Alur
Citation
"The thesis
explores a formalism called nested trees, that can represent complex
branching behavior (loops and recursion) and support modular statement of
context-sensitive correctness conditions. It further makes a specific
technical contribution by offering the first algorithm for reachability in
in nested trees that is sub-cubic in performance. The committee believes
this work has great potential for long-term utility."
2006:
Xiangyu Zhang, University of Arizona.
Fault Location via Dynamic Slicing
Advisor: Rajiv Gupta
Citation
"Dynamic slicing is
a technique for determining which variables and data structures affected
values causing a fault (bug) at a particular location in a particular run of
a program, thus allowing a programmer to work backwards to determine the
ultimate cause of a fault. Previously this approach was too expensive to use
in practice. Zhang has improved the performance by orders of magnitude,
making it practical. The committee believes this work will have considerable
impact and value in practice."
2005: Sumit Gulwani, University of California, Berkeley. Program Analysis using Random Interpretation
Advisor: George Necula
2003: Godmar Back, University of Utah. Isolation,
Resource Management and Sharing in the KaffeOS Java Runtime System
Advisor: Wilson Hsieh
2002: Michael Hicks, University of Pennsylvania. Dynamic
Software Updating
Advisor: Scott Nettles
2001: Rastislav Bodik, University of Pittsburgh, Path-Sensitive
Value-Flow Optimizations of Programs