Most Influential ICFP Paper Award (2023)

Presented annually to the author(s) of a paper presented at theICFP held 10 years prior to the award year. The award includes aprize of $1,000 to be split among the authors of the winning paper.The papers are judged by their influence over the past decade.

Selection Committee
The award given in year N is for the most influential paperpresented at the conference held in year N-10. The selectioncommittee consists of the following members:

  • the current SIGPLAN Chair, ex officio,
  • a member of the SIGPLAN EC appointed as committee Chair by theSIGPLAN Chair,
  • the General Chair and Program Chair for ICFP N-10,
  • the General Chair and Program Chair for ICFP N-1, and
  • a member of the SIGPLAN EC appointed by the committee Chair.

The SIGPLAN Chair shall adjudicate conflicts of interest,appointing substitutes to the committee as necessary.


2021Nate Foster, Rob Harrison, Michael Freedman, Christopher Monsanto, Jennifer Rexford, Alex Story, and David Walker

(for 2011) Frenetic: A Network Programming LanguageCitation: | This is the first conference paper in a highly influential line of work creating a bridge between PL and networking. The authors analyzed deficiencies in the state of the art in languages for programming networks, addressed these limitations in a new language design, and described its implementation and performance on a suite of microbenchmarks. The language applied a range of ideas from the functional programming community: a declarative query language for classifying and aggregating network traffic; a reactive combinator library for describing high-level packet-forwarding policies; and a run-time system that automatically generates the low-level packet-processing rules, installing, uninstalling, and querying them on physical switches. This paper inspired a mountain of follow-on work by these authors and others. The practical value of improving network programming, and this paper’s influence on subsequent advances in the state of the art, make it a deserving winner of the award for Most Influential Paper of ICFP 2011.

2020David Van Horn and Matthew Might

(for 2010) Abstracting Abstract Machines


The idea is to systematically go from a high-level program semanticsto a nondeterministic finite-state machine that can be implemented notonly efficiently but in a relatively straightforward manner.

The paper showed how this works for a wide variety of languageconstructs such as mutable state, first-class continuations andlaziness, and how careful choices lead to analyses with tunablecomputational complexity.

A key advantage of the approach is that ideas from programminglanguage design and implementation can be directly imported andapplied to the design and implementation of abstract interpreters.

The approach has influenced static analyses for Erlang, JavaScript andother languages, and it has influenced many researchers who work onsound static analyses.

2019Simon Marlow, Simon Peyton Jones, and Satnam Singh

(for 2009) Runtime Support for Multicore Haskell

(Video) ICFP 2014: Most Influential Paper Award (for 2004)


One may think that purely functional programs should run well on parallel hardware without much extra effort. But, at the time the paper was published it had proved hard to realize this potential in practice. This state of the affairs changed with the work presented in the paper. Due to this work, runtime multicore support is one of the GHC’s unique features today. The language and runtime make it very simple to exploit degrees of parallelism. The multicore support features are widely used in real-world Haskell - the package implementing the multicore support is itself downloaded widely and most of Haskell’s top packages that are widely used in web-servers and web frameworks make use of some form of GHC’s parallel and concurrent runtime. Thanks to the multicore support, Haskell is perhaps one of the few languages, where STM is actually widely used in practice. Overall, the paper has a strong case for helping make and cement the case for why functional programming is a happy match for the multicore era.

2018Adam Chlipala

(for 2008) Parametric higher-order abstract syntax for mechanized semantics


This paper describes how adding parametricity to higher-order abstractsyntax yields a powerful tool for simplifying proofs of programming-languagemetatheorems. Specifically, parametricity simplifies both the treatment ofvariables and contexts, and also the proofs of associated lemmas such asweakening and substitution.The paper applies the technique, known as PHOAS,to machine-checked proofs in Coq. This spurred many follow-on papers onsyntax representation, mechanized metatheory, and certifiedcompilation. Washburn and Weirich introduced a similar (but not identical)encoding for Haskell first, which inspired an implementation compatible withproof assistants that use dependent type theory. A key benefit of PHOAS isavoiding any modeling of contexts, for many worthwhile examples. A recentapplication is the fast, PHOAS-verified crypto code that is used by Chrome,which is the world’s most popular web browser.

2017Peter Sewell, Francesco Zappa Nardelli, Scott Owens, Gilles Peskine, Thomas Ridge, Susmit Sarkar, and Rok Strniša

(for 2007) Ott: Effective Tool Support for the Working Semanticist


The ICFP paper describes Ott’s goals and design, focusingparticularly on its metalanguage, which aims to balancemathematical precision and ease-of-use. Ott strikes a balancebetween informal notation and checked structure that is bothlightweight and powerful. As its syntax is notationally close toexisting vernacular, it is easy for language designers toadopt. At the same time, Ott’s flexible parser and native supportfor meta-functions and relations means that it “type checks”language specifications, catching subtle errors in definitionseven without full encoding in a proof assistant. Over the past tenyears, ICFP researchers have benefitted tremendously from theopen-source tool and the effective design space exploration thatit promotes.

2016Simon Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, and Geoffrey Washburn

(for 2006) Simple unification-based type inference for GADTs


GADTs are a simple but powerful generalization of the recursivealgebraic datatypes introduced in Hope and a central feature offunctional programming languages like ML and Haskell. GADTs havebecome an important technique in the programmer’s toolbox,enabling a lightweight style of dependently typed programming,similar to the use of inductive families. However, type inferenceis difficult for GADTs, as they necessarily entail the loss ofprincipal types. This paper shows how to exploit a few typeannotations in order to make inference possible again. The keyinnovation is the notion of “wobbly types”. It has started alively line of research in new approaches to combining typeinference and type checking - in particular with System FC, anextension of System F with constraints, that has provided a simpleyet powerful internal language for the GHC compiler - and mademany of the benefits of dependent types accessible to moremainstream programmers.

(Video) SIGPLAN Awards & Student Research Competition Awards

2015Manuel M. T. Chakravarty, Gabriele Keller, and Simon Peyton Jones

(for 2005) Associated Type Synonyms


Building on the 2005 POPL Paper “Associated types with class”,Chakravarty, Keller, and Peyton Jones added the ability to writeopen type functions directly in Haskell. The new opportunitiesfor computation on the type level have become popular with Haskellprogrammers, and it would be hard to overstate the influence ofthis work on the community. Of greatest influence have been thesethree contributions to type-level programming:

  • Type-level functions offer a qualitative jump in theexpressiveness of Haskell’s type system, adding some of theadvantages of dependently typed languages while retainingpervasive type inference.

  • Associated types give type classes a functional notation forenabling one type to depend on another. As opposed to therelational notation provided by functional dependencies,associated types enable programmers to use the same style ofprogramming at the type level that they do at the term level,making type-level programming more accessible.

  • The supporting language extension includes a type-levelequality constraint, which supports the non-injective nature oftype-functions. This extension has had many serendipitoususes, including in the surprisingly expressive low-levelintermediate language System FC.

2014Ralf Lämmel and Simon Peyton Jones

(for 2004) Scrap More Boilerplate: Reflection, Zips, and Generalised Casts


In their TLDI 2003 paper, Lämmel and Peyton Jones introduced“Scrap Your Boilerplate” (SYB), a simple but powerful designpattern for generic programming in Haskell. SYB introduced alibrary of strategic combinators which one could use to composegeneric custom traversals of complex data structures, such assyntax trees or XML documents. It was not initially clear,however, whether SYB would scale to handle more traditionalapplications of generic programming, such as serialization,deserialization, and generic equality, which require a form ofreflection. The authors’ subsequent ICFP 2004 paper significantlyextended their original SYB library with support for reflection,zips, and generalised casts, thus demonstrating the applicabilityof SYB to a much broader range of generic programming tasks. Thisbroad applicability, combined with the ease with which programmerscould pick up and use the library, led to its adoption in numerousHaskell developments, and contributed greatly to the burgeoninginterest in statically typed, practically usable libraries forgeneric programming over the past decade.

2013Didier Le Botlan and Didier Rémy

(for 2003) MLF: Raising ML to the Power of System F


Le Botlan and Rémy’s paper on MLF presented a major technicalbreakthrough in type inference for first-classpolymorphism. Remarkably, by going from ML to a system that ismore expressive than System F, principal types could berecovered. The paper was the first and only paper (to date) topresent a type inference and unification algorithm with all the“good” features of ordinary ML inference and unification, excepton a richer universe of types and constraints that allowedimpredicative instantiation. The MLF system enjoys most generalunifiers, completeness properties, and robustness under programtransformations, with user type annotations providing the oraclesneeded to reach the expressiveness of System F and beyond. The MLFpaper has been highly influential on subsequent work in typeinference for first-class polymorphism, and is a must-read foranyone interested in the topic.

(Video) Most Influential Paper Award, ISCA 2007, Acceptance Speech

2012Robert Findler and Matthias Felleisen

(for 2002) Contracts for higher-order functions


Assertion-based contracts have proven very useful for dynamicallyenforcing first-order program invariants in procedural languages,but until 2002 they had not been supported in languages withhigher-order functions. Findler and Felleisen’s paper filled thisgap, presenting “the first assertion-based contract checker forlanguages with higher-order functions.” The paper also spawned agreat deal of follow-on work on such topics as the semantics ofblame assignment and the integration of static typing and dynamiccontract checking. Higher-order contracts have become a centralcomponent of the Racket (formerly PLT Scheme) system – one of themajor software artifacts of the functional-programming community– which serves as both a research testbed and an effective toolfor programming-language education.

2011Claudio Russo

(for 2001) Recursive Structures for Standard ML


Various attempts at extending ML modules with recursions were madestarting in the early 90’s. However, they all ran into a nasty typingissue later dubbed the “double-vision problem” by Derek Dreyer. Russo’sICFP 2001 paper was the first to propose a correct and practical solutionto this problem. The solution played very cleverly on the nonstandardformalization of ML modules developed in his thesis. Building on thisnovel insight, the ICFP 2001 paper develops a complete design forrecursive modules in ML, which Russo implemented in Moscow ML and whichis complete enough to handle many desirable examples. Russo’s design wasthe main source of inspiration for adding recursive modules in OCaml,taking recursive modules from an open research issue to a realisedlanguage feature that simply works.

2010Koen Claessen and John Hughes

(for 2000) Quickcheck: a lightweight tool for random testing of Haskell programs


This paper presented a very simple but powerful system for testing Haskell programs that has had significant impact on the practice of debugging programs in Haskell. The paper describes a clever way to use type classes and monads to automatically generate random test data. QuickCheck has since become an extremely popular Haskell library that is widely used by programmers, and has been incorporated into many undergraduate courses in Haskell. The techniques described in the paper have spawned a significant body of follow-on work in test case generation. They have also been adapted to other languages, leading to their commercialisation for Erlang and C.

2009Malcolm Wallace and Colin Runciman

(for 1999) Haskell and XML: Generic combinators or type-based translation?,


(Video) 2018 ICSE Most Influential Paper Award Talk

Malcolm Wallace and Colin Runciman’s 1999 ICFP paper “Haskell andXML: Generic combinators or type-based translation?” was one of thefirst papers to spell out the close connection between functionalprogramming languages and XML. It described a typed correspondencebetween XML’s document type definitions (DTD) and Haskelldatatypes. This correspondence leads to a natural representation ofXML data in functional languages and permits native functions tooperate on this representation. The paper also describes a genericencoding of XML trees together with a combinator language forquerying and transforming the XML. The paper led to a widespreadawareness of the close connection between XML and functionalprogramming and initiated a flurry of research on functional XMLprocessing. Moreover,the accompanying implementation was widely distributed as part of aCD with various XML tools, thus making an impact in the problemdomain beyond the functional programming community: a perfectexample of functional programming solving real world problems.

2008Lennart Augustsson

(for 1998) Cayenne — a language with dependent types,


Lennart Augustsson’s 1998 ICFP Paper “Cayenne: A language withdependent types” made dependently-typed programming accessible tonon-type theorists. The language design was a bold one, both in itsuse of dependent types and in its adoption of an undecidable typesystem. Although the idea seemed quite radical at the time, itallowed future work to break out of the straight-jacket ofdecidable type systems. It also pointed the way towards the mergerof programming languages and proof systems that we are starting tosee today in languages such as Agda.

2007Conal Elliott and Paul Hudak"

(for 1997) Functional Reactive Animation,


“Functional Reactive Animation” by Conal Elliott and Paul Hudak wasthe first published paper on functional reactive programming. Itdescribed a collection of data types and functions that comprisedan embedded domain-specific language called Fran for composinginteractive, multi-media animations. The key abstractions werefirst-class behaviors and events. Intuitively, a behavior is avalue that varies with continuous time while an event is a discretecounterpart including time-varying predicates. The idea ofregarding the entire lifetime of a time-varying quantity as asingle first-class value was new and very surprising at the time,but the paper made it seem simple and obvious. The insight in thepaper led to a significant number of follow-on projects includingFranTk, Fruit, Pidgets, FrTime, Frob, FRP, Frappe, Frag, Fvision,Yampa, Feris, and work on embodying financial contracts infunctional terms.

2006Julia L. Lawall and Harry G. Mairson

(for 1996) Optimality and inefficiency: what isn’t a cost model of the lambda calculus?


Julia Lawall and Harry Mairson’s 1996 ICFP paper “Optimality andinefficiency: What isn’t a cost model of the lambda calculus?”exposed a fundamental problem with proposed algorithms for optimalreduction. Starting with Jean-Jacques Lévy’s seminal work in 1978,the goal of optimal reduction was to correctly normalizelambda-calculus terms without duplicating redexes. Variousstrategies were subsequently devised to realize optimal reduction,notably the solution of John Lamping at POPL 1990, then simplifiedand improved by Georges Gonthier, Martín Abadi, and Jean-JacquesLévy at POPL 1992. Each solution used subtle bookkeeping mechanismsto control sharing.

Lawall and Mairson showed that these bookkeeping mechanismsintroduced a complexity and inefficiency of their own. Theydiscovered terms that could be normalized in linear time, but whosebookkeeping costs required exponential time. They further showedthat Frandsen and Sturtivant’s cost model for lambda-calculusreduction, presented at FPCA 1991, needed to account for the sizeof intermediate terms, and that optimal-evaluation interpreterswere at least exponentially slower than the proposed cost model.Lawall and Mairson concluded that the notion of optimality did notnecessarily coincide with that of efficiency. As a consequence,different and possibly optimal evaluation strategies were stillneeded, as were more realistic cost models. Subsequent work in thisarea has focused on such cost models, on further analysis of theinherent complexity of optimal reduction, and on relaxing theoptimality condition in exchange for lower bookkeeping overhead andgreater overall efficiency.


1. X10 wins 2005 ACM SIGPLAN OOPSLA Most Influential Paper Award
2. [MODELS'17] Bidirectional Model Transformations: 10-year Most Influential Paper
(Perdita Stevens)
3. ICAPS 2013: Jörg Hoffmann (Influential Paper Award) - On the Extraction, Ordering, and Usage of ...
(ICAPS 2013 - 23rd International Conference on Automated Planning and Scheduling)
4. Interview with Craig Henderson, Winner of Best Paper Award at SAI Conference 2015
5. Keynote: Some Lessons Learnt while Creating a Real MOOC-based Masters of Science
(ICSE2014 Hyderabad)
6. "Dependent Types in Haskell" by Stephanie Weirich
(Strange Loop Conference)
Top Articles
Latest Posts
Article information

Author: Arielle Torp

Last Updated: 12/13/2022

Views: 6013

Rating: 4 / 5 (61 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Arielle Torp

Birthday: 1997-09-20

Address: 87313 Erdman Vista, North Dustinborough, WA 37563

Phone: +97216742823598

Job: Central Technology Officer

Hobby: Taekwondo, Macrame, Foreign language learning, Kite flying, Cooking, Skiing, Computer programming

Introduction: My name is Arielle Torp, I am a comfortable, kind, zealous, lovely, jolly, colorful, adventurous person who loves writing and wants to share my knowledge and understanding with you.