SIGPLAN is the Association for Computing Machinery's Special Interest Group (SIG) on programming languages. This SIG explores programming language concepts and tools, focusing on design, implementation, practice, and theory. Its members are programming language developers, educators, implementers, researchers, theoreticians, and users.
Recognizes outstanding contributions by young researchers in the area of programming languages.[5] The award is named after the computer scientist Robin Milner.
Given to an institution or individual(s) to recognize the development of a software system that has had a significant impact on programming language research, implementations, and tools.[6]
The full name of this award is the John C. Reynolds Doctoral Dissertation Award, after the computer scientist John C. Reynolds. It is "presented annually to the author of the outstanding doctoral dissertation in the area of Programming Languages."[17]
2017 (for 2007): Valgrind: a framework for heavyweight dynamic binary instrumentation, Nicholas Nethercote, Julian Seward
2016 (for 2006): DieHard: probabilistic memory safety for unsafe languages, Emery Berger, Benjamin Zorn
2015 (for 2005): Pin: building customized program analysis tools with dynamic instrumentation, Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay Janapa Reddi, and Kim Hazelwood
2014 (for 2004): Scalable Lock-Free Dynamic Memory Allocation, Maged M. Michael
2013 (for 2003): The nesC language: A holistic approach to networked embedded systems, David Gay, Philip Levis, J. Robert von Behren, Matt Welsh, Eric Brewer, and David E. Culler
2012 (for 2002): Extended Static Checking for Java, Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, and Raymie Stata
2011 (for 2001): Automatic predicate abstraction of C programs, Thomas Ball, Rupak Majumdar, Todd Millstein, and Sriram K. Rajamani
2010 (for 2000): Dynamo: A Transparent Dynamic Optimization System, Vasanth Bala, Evelyn Duesterwald, Sanjeev Banerji
2009 (for 1999): A Fast Fourier Transform Compiler, Matteo Frigo
2008 (for 1998): The implementation of the Cilk-5 multithreaded language, Matteo Frigo, Charles E. Leiserson, Keith H. Randall
2007 (for 1997): Exploiting hardware performance counters with flow and context sensitive profiling, Glenn Ammons, Thomas Ball, and James R. Larus
2006 (for 1996): TIL: A Type-Directed Optimizing Compiler for ML, David Tarditi, Greg Morrisett, Perry Cheng, Christopher Stone, Robert Harper, and Peter Lee
2005 (for 1995): Selective Specialization for Object-Oriented Languages, Jeffrey Dean, Craig Chambers, and David Grove
2017 (for 2007): JavaScript Instrumentation for Browser Security, Dachuan Yu, Ajay Chander, Nayeem Islam, Igor Serikov
2016 (for 2006): Formal certification of a compiler back-end or: programming a compiler with a proof assistant, Xavier Leroy
2015 (for 2005): Combinators for Bidirectional Tree Transformations: A Linguistic Approach to the View Update Problem, Nate Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, Alan Schmitt
2014 (for 2004): Abstractions from proofs, Thomas Henzinger, Ranjit Jhala, Rupak Majumdar, Kenneth McMillan
2013 (for 2003): A real-time garbage collector with low overhead and consistent utilization, David F. Bacon, Perry Cheng, VT Rajan
2012 (for 2002): CCured: Type-Safe Retrofitting of Legacy Code, George C. Necula, Scott McPeak, and Westley Weimer
2011 (for 2001): BI as an Assertion Language for Mutable Data Structures, Samin Ishtiaq and Peter W. O'Hearn
2010 (for 2000): Anytime, Anywhere: Modal Logics for Mobile Ambients, Luca Cardelli and Andrew D. Gordon
2009 (for 1999): JFlow: Practical Mostly-Static Information Flow Control, Andrew C. Myers
2008 (for 1998): From System F to Typed Assembly Language, Greg Morrisett, David Walker, Karl Crary, and Neal Glew
2007 (for 1997): Proof-carrying Code, George Necula
2006 (for 1996): Points-to Analysis in Almost Linear Time, Bjarne Steensgaard
2005 (for 1995): A Language with Distributed Scope, Luca Cardelli
2004 (for 1994): Implementation of the Typed Call-by-Value lambda-calculus using a Stack of Regions, Mads Tofte and Jean-Pierre Talpin
2016 (for 2006): The DaCapo benchmarks: Java benchmarking development and analysis, Stephen M. Blackburn, Robin Garner, Chris Hoffmann, Asjad M. Khan, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J. Eliot B. Moss, Aashish Phansalkar, Darko Stefanović, Thomas VanDrunen, Daniel von Dincklage, Ben Wiedermann
2015 (for 2005): X10: An Object-Oriented Approach to Non-Uniform Cluster Computing, Philippe Charles, Christian Grothoff, Vijay Saraswat, Christopher Donawa, Allan Kielstra, Kemal Ebcioglu, Christoph von Praun, and Vivek Sarkar
2014 (for 2004): Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages, Gilad Bracha and David Ungar
2013 (for 2003): Language Support for Lightweight Transactions, Tim Harris and Keir Fraser
2012 (for 2002): Reconsidering Custom Memory Allocation, Emery D. Berger, Benjamin G. Zorn, and Kathryn S. McKinley
2010 (for 2000): Adaptive Optimization in the Jalapeño JVM, Matthew Arnold, Stephen Fink, David Grove, Michael Hind, and Peter F. Sweeney
2009 (for 1999): Implementing Jalapeño in Java, Bowen Alpern, C. R. Attanasio, John J. Barton, Anthony Cocchi, Susan Flynn Hummel, Derek Lieber, Ton Ngo, Mark Mergen, Janice C. Shepherd, and Stephen Smith
2008 (for 1998): Ownership Types for Flexible Alias Protection, David G. Clarke, John M. Potter, and James Noble
2007 (for 1997): Call Graph Construction in Object-Oriented Languages, David Grove, Greg DeFouw, Jeffrey Dean, and Craig Chambers
2006 (for 1986–1996):
Subject Oriented Programming: A Critique of Pure Objects, William Harrison and Harold Ossher
Concepts and Experiments in Computational Reflection, Pattie Maes
Self: The Power of Simplicity, David Ungar and Randall B. Smith
Most Influential ICFP Paper Award
2019 (for 2009): Runtime Support for Multicore Haskell: Simon Marlow, Simon Peyton Jones, and Satnam Singh
2009 (for 1999): Haskell and XML: Generic combinators or type-based translation?, Malcolm Wallace and Colin Runciman
2008 (for 1998): Cayenne — a language with dependent types, Lennart Augustsson
2007 (for 1997): Functional Reactive Animation, Conal Elliott and Paul Hudak
2006 (for 1996): Optimality and inefficiency: what isn't a cost model of the lambda calculus?, Julia L. Lawall and Harry G. Mairson