John C. Reynolds Doctoral Dissertation Award


Presented annually to the author of the outstanding doctoral dissertation in the area of Programming Languages. The award includes a prize of $1,000. The winner can choose to receive the award at ICFP, OOPSLA, POPL, or PLDI.

Nominations

Nominations must be submitted via the SIGPLAN Awards Nomination Portal at https://awards.sigplan.org/nominate/reynolds/ by January 4th 2015 to be considered for this year’s award. The nominated dissertation must be available in an English language version to facilitate evaluation by the selection committee and have been awarded in the year 2014.

A nomination should consist of the following items:

  • Name, address, phone number, and email address of the person making the nomination (the nominator).
  • Name, address, phone number, and email address of the candidate for whom an award is recommended (the nominee).
  • Dissertation - either as a pdf or a url where the dissertation can be found.
  • A short statement (200-500 words) explaining why the nominee deserves the award in question.
  • Supporting statements from up to two people in addition to the nominator.

This award recognizes the contributions to computer science that John C. Reynolds made during his life. It is a renaming of the SIGPLAN Outstanding Doctoral Dissertation Award to encourage the clarity and rigor that Reynolds embodied and at the same time provide a reminder of Reynolds’s legacy and what a difference a person can make in the field of programming language research.

Reynolds is renowned for his many technical contributions.

  • Gedanken, a core untyped language mixing functional and imperative features, which influenced Scheme;
  • Defunctionalization, which gives principled ways of constructing compilers;
  • Polymorphic λ-calculus, a fundamental calculus of polymorphic functions, which influenced Java and C# generics;
  • Syntactic control of interference, a resource-oriented type system, which prefigured linear logic;
  • λ-calculus with subtypes, which is a foundational component of object-oriented type systems;
  • Idealized Algol, a core typed language for mixing imperative and functional features, which prefigured monads in Haskell;
  • Possible-world semantics for local state, a widely-used technique in programming language theory;
  • Relational parametricity, a fundamental theory of data abstraction;
  • Separation logic, an extension of Hoare logic to mutable data structures, which forms the basis of a new generation of proof tools.

Reynolds was an inspiration to all he worked with. He was well known for helping colleagues and students work through ideas. But his influence went well beyond his immediate circle; many researchers who never worked with Reynolds nevertheless built on his ideas.

Selection Committee

Recipients

2014 Aaron Turon, Northeastern University

Understanding and Expressing Scalable Concurrency

Advisor: Mitchell Wand

Citation:

Aaron Turon’s dissertation makes several major contributions to the design, implementation, and verification of scalable concurrent programs. First, the dissertation presents “reagents”, a high-level language of combinators for designing—and composing—lock-free data structures. Second, the dissertation shows how lock-free data structures can be used to scalably implement Fournet and Gonthier’s join calculus, in a newly re-engineered C# library that significantly outperforms prior lock-based implementations. Third, the dissertation develops powerful theoretical foundations—based on logical relations and separation logic—for verifying the correctness of scalable concurrent algorithms via contextual refinement. The members of the award committee were impressed with both the breadth and depth of the work, as well as the elegance of the exposition.

2013 Patrick Rondon, University of California, San Diego

Verifying Low-Level Programs via Liquid Type Inference

Advisor: Ranjit Jhala

Citation:

Patrick Rondon’s dissertation makes several significant contributions to the field of automatic program verification. It takes a type system – a highly scalable yet not quite precise method of dealing with programs – and refines it using Satisfiability Modulo Theory (SMT) techniques to compensate for the precision loss. There are implementations for both OCaml and C. The achieved degree of effectiveness and automation is astonishing: programs that are beyond the existing verification tools can be handled fully automatically within seconds. It demonstrates that formal verification can yield significant reliability guarantees for mainstream software engineering, at a reasonable cost. In addition, the thesis contains a comprehensive formalization with very detailed, readable proofs. The members of the award committee were impressed by the quality of the work and the clarity of the presentation.

2012 Dan Marino, University of California Los Angeles

Simplified Semantics and Debugging of Concurrent Programs via Targeted Race Detection

Advisor: Todd Millstein

Citation:

This dissertation addresses the problem of obtaining reliable results from concurrent programs. As a first step, the dissertation presents LiteRace, which uses sampling to dynamically detect race conditions. As a second step, the dissertation presents DRFx, which is a memory model that enforces sequential consistency, where hardware and software share responsibility for detecting violations of sequential consistency. Finally, the dissertation presents the design of an optimizing compiler that preserves sequential consistency. The dissertation thus demonstrates how a revised distribution of responsibilities among programmers, programming languages, and hardware can help detect and avoid concurrency violations. The committee was impressed with the dissertation’s broad vision for both the problems of concurrency and the possible solutions.

Selection committee:

  • John Boyland (U. Wisconsin Milwaukee)
  • Chen Ding (U. Rochester)
  • Matthew Flatt (U. Utah)
  • David Gregg (Trinity U.)
  • Norman Ramsey (Tufts U.)
  • Jeremy Siek (U. Colorado)
  • Adam Welc (Oracle)

2010 Robert L. Bocchino, University of Illinois at Urbana-Champaign

An Effect System and Language for Deterministic-by-Default Parallel Programming

Advisor: Vikram Adve

Citation:

This dissertation makes several significant contributions to the field of parallel and concurrent programming. The main technical contribution is a type and effect system that enables reasoning about non-interference at a fine granularity. A second contribution is support for non-deterministic code sections that are explicitly marked as such. A third contribution is support for object-oriented frameworks, where user extensions are guaranteed to adhere to the framework’s effect restrictions. These contributions are backed by formal models, soundness proofs, and the Deterministic Parallel Java implementation. Evaluation shows that highly satisfactory speedups can be achieved on interesting code bases, sometimes beating the performance of hand-crafted implementations. The members of the award committee were impressed by the quality of the work and the clarity of the presentation.

Selection commmittee: Ras Bodik, Matthew Dwyer, Matthew Flatt, Matthew Fluet, Kevin Hammond, Nathaniel Nystrom, Kostis Sagonas, Peter Sewell, Peter Thiemann

2009 Akash Lai, University of Wisconsin

Interprocedural Analysis and the Verification of Concurrent Programs

Advisor: Thomas Reps

Citation:

This dissertation develops improvements to interprocedural program analysis through context-bounded analysis and through Lal’s extended weighted push down systems, which generalize weighted push down systems to handle local variables. The dissertation describes both algorithms and experiments, and it shows, for example, a 30-fold speedup over existing algorithms for analyzing concurrent programs. The members of the award committee were impressed by the unusual scope and depth of the dissertation and its excellent presentation.

2009 William Thies, Massachusetts Institute of Technology

Language and Compiler Support for Stream Programs

Advisor: Saman Amarasinghe

Citation:

This dissertation describes the StreamIt synchronous dataflow language, for which Thies led the definition. The language supports several novel constructs, notably teleport messaging. Thies’s dissertation includes a technique for processing compressed video data, and it also describes dynamic analysis techniques to convert legacy C applications to streaming applications. The members of the award committee were impressed with the novelty, interdisciplinary nature, and breadth of the work, the care given to evaluation, and the quality of the presentation.

2008 Michael Bond, University of Texas at Austin

Diagnosing and Tolerating Bugs in Deployed Systems

Advisor: Kathryn 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.

2008 Viktor Vafeiadis, University of Cambridge

Modular Fine-grained Concurrency Verification

Advisor: 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

Advisor: Rajiv Gupta and Mary Lou Soffa