The Robin Milner Young Researcher Award is given by ACM SIGPLAN to recognize outstanding contributions by young investigators in the area of programming languages. Individuals are eligible if their computer-related professional career (graduate school or full-time employment, whichever began first) started no earlier than 20 years prior to the nominations deadline. The award includes a prize of $2,500.
All questions about the Robin Milner Young Researcher Award should be directed to firstname.lastname@example.org.
Robin Milner (13 January, 1934 - 20 March, 2010)
Robin Milner was, for decades, a leading light in programming language research, developing many of the ideas that now form the backbone of the field. Among Milner’s biggest gifts to the field was his passion for mentoring and nurturing young colleagues, many of whom have grown into world leaders in their own right. It seems fitting that an award be established in his name to further encourage new generations of outstanding researchers.
Milner’s academic career began with posts at City University (University of London), Swansea, and Stanford. In 1973 he joined the University of Edinburgh, where in 1986 he co-founded the legendary Laboratory for Foundations of Computer Science (LFCS). In 1995 he left Edinburgh for Cambridge, where he was head of the Computer Laboratory for several years. He became a Fellow of the Royal Society in 1998 and received the Turing Award in 1991. The Turing Award citation includes this capsule summary of his contributions:
Working in challenging areas of computer science for twenty years, Robin Milner has the distinction of establishing an international reputation for three distinct and complete achievements, each of which has had and will continue to have a marked, important, and widespread effect on both the theory and practice of computer science:
LCF, the mechanization of Scott’s Logic of Computable Functions, probably the first theoretically based yet practical tool for machine-assisted proof construction. ML, the first language to include polymorphic type inference together with a type-safe exception-handling mechanism. CCS, a general theory of concurrency. In addition, he formulated and strongly advanced full abstraction, the study of the relationship between operational and denotational semantics.
A key ingredient in all of his work has been his ability to combine deep insight into mathematical foundations of the subject with an equally deep view of the key engineering issues, thus allowing the feedback of theory into practice in an exciting way. Further, his style of scholarship, rigor, and attention to aesthetic quality sets a high example for all to follow.
Nominations will be due on the fifth of January of each year. The recipients of the award will be selected by the SIGPLAN Awards committee, which is constituted as follows. (1) The Chair of the Awards committee shall be a member of the SIGPLAN Executive Committee, and shall be appointed by the executive committee. (2) The Chair of the SIGPLAN EC shall be an ex-officio member of the Awards committee. If the EC Chair is unable to serve, he or she may appoint another member of the EC as a substitute. (3) The steering committees of the major SIGPLAN Conferences, POPL, PLDI, ICFP, and SPLASH, shall each appoint a member to the Awards Committee. The committee shall also have the option to decline to make an award in a given year, if no suitable nominations are presented.
At the discretion of the SIGPLAN Awards Committee, the 20-year eligibility may be adjusted for special circumstances, such as, but not limited to family leave, medical leave, or military service, that are documented and argued in the nomination. Questions about eligibility should be directed to the SIGPLAN Awards Chair in advance.
Please use http://awards.sigplan.org/ to submit nominations.
Conflicts of Interest
Because these awards are intended to recognize persons and software systems of major influence, it is likely that several members of the awards committee may have worked with, or co-authored articles with, the nominees, and may have a conflict of interest. The primary mechanism for handling such conflicts will be to declare them to the committee; once so declared, conflicts of interest shall not automatically prevent a committee member from taking part in the selection process. However, if a member of the committee, or the chair of the committee, feels that the association of a committee member with a nominee would interfere with impartial consideration of the nominees, a committee member shall be absented from the relevant parts of the discussion. If the same committee member has conflicts of interest with more than one nominee, the Chair of the Awards Committee may ask the constituency that appointed the committee member to select a replacement member.
Note that, in consultation with the ACM Awards Board, the wording of the Milner Award eligibility requirement has been updated to clarify that the 20-year time frame is in relation to the nomination deadline (rather than the vague “time of nomination” as was originally written).
Eran Yahav has a record of sustained, high-impact contributions to the programming languages research community over nearly two decades. Much of his work has concerned effective static reasoning about concurrent programs, which is a longstanding challenge due to the complex and non-local ways in which threads can interact with one another. Yahav developed novel abstractions for verifying safety and correctness properties of concurrent programs and used them to validate non-trivial concurrent algorithms in Java. Later, he extended and applied program synthesis techniques to concurrent programs in creative ways, for example, demonstrating how to synthesize a correct concurrent version of a sequential algorithm and how to automatically repair an existing concurrent algorithm through additional synchronization. Most recently, Yahav has been an early leader in the area of “big code,” leveraging machine learning techniques to solve difficult programming tasks, including code search, code completion, and reverse engineering. This work has influenced others in the research community to pursue this research direction and has led to practical software engineering tools for programmers.
Ranjit Jhala has demonstrated a long track-record of producing foundational and impactful contributions to our understanding of programming language theory and implementation. Jhala was one of the principal developers of the BLAST automatic verification tool for checking temporal safety properties of C programs. A key contribution was the notion of lazy abstraction which integrates three phases of the software model checking loop: abstraction, checking and refinement. Jhala developed an algorithm for model checking safety properties that continuously builds and refines a single abstract model on demand by the model checker. This allows different parts of the model to exhibit just the degrees of freedom required to verify a desired property. The work on lazy abstraction has proved to be very influential in the verification community. Jhala also used Craig interpolation to efficiently construct, from a given abstract error trace that cannot be concretized, a parsimonious abstraction that removes the trace. He developed the method for programs with arithmetic and pointer expressions, and call-by-value function calls. This resulting technique was successfully applied to programs over 130,000 lines which was previously not possible.
Jhala has significantly advanced the practical application of refinement types which allow programmers to attach additional specifications to existing types. These additional specifications allow interesting properties to be proved about code, such as invariants over recursively defined data structures. The problem with such specifications is that they can be too onerous to write down and get right. Jhala’s work on Liquid Types showed that a useful and expressive class of these specifications can be inferred in a largely automatic way, making the approach far more practical at a reasonable cost. Jhala’s work with Liquid Types has significantly extended the state-of-the-art, adding a notion of predictability and decidability often not found in SMT-based software verification, and extending the usability and expressiveness of formal type systems.
Selection committee: Anthony Hosking, Chandra Krintz, Xavier Leroy, François Pottier and Satnam Singh.
Derek Dreyer has made deep, creative research contributions of great breadth. His areas of impact are as diverse as module systems, data abstraction in higher-order languages, mechanized proof systems and techniques, and concurrency models and semantics. He has refactored and generalized the complex module systems of SML and OCaml; devised logical relations and techniques that enabled advances in reasoning about higher-order imperative programs; and developed novel separation logics for modular verification of low-level concurrent programs. His research papers are a model of clarity and depth, and he has worked actively to translate his foundational ideas into practice – most recently with the RustBelt project to provide formal foundations for the Rust language. Additionally, Dreyer has contributed leadership, support, and mentorship in activities such as the PLMW series of workshops, which are instrumental in growing the next generation of PL researchers.
Selection committee: Kathleen Fisher, Antony Hosking, Chandra Krintz, Xavier Leroy, Yannis Smaragdakis.
Stephanie Weirich has made deep and sustained contributions to programming language research in the areas of functional programming, dependent types, and proof assistants. She has been one of the main investigators of type inference for Generalized Algebraic Data Types (GADTs), and, with collaborators at Microsoft Research, she helped put this technology into practice in the widely used GHC Haskell implementation. Weirich, with collaborators at Penn and Cambridge, also initiated and led the POPLMark challenge, a highly visible and influential effort to promote the use of proof assistants for formalizing and checking the theory of programming languages. She has also greatly contributed to the understanding of dependent types in practical programming languages, and is now involved in an effort to bring the benefits of dependent types to Haskell. Finally, Weirich has made substantial contributions to the programming languages community, notably with her involvement in the Programming Languages Mentoring Workshop (PLMW), which has blossomed into a highly successful workshop that is held several times a year at venues including POPL, PLDI, ICFP, and SPLASH; Weirich was one of the original organizers of PLMW at POPL 2012, and continues to serve on the workshop’s steering committee.
Selection committee: Tom Ball, Matthew Flatt, Antony Hosking, Sorin Lerner, Yannis Smaragdakis.
David Walker has made deep and varied contributions to programming language research, but always with an eye towards emerging and surprising applications of foundational theory. He was one of the co-authors of the work on Typed Assembly Language (TAL), which showed how conventional type systems could be brought to bear on low-level machine code, and which forms the basis for today’s typed virtual machines such as Microsoft’s .NET. Focusing on the need for better reasoning principles for pointers, he helped develop Alias Types, the Calculus of Capabilities, and region-based formalisms that influenced the design of type systems for modern languages like Cyclone, Vault, and Rust. Walker also provided semantic foundations for secure program monitoring, and used his insights to develop new tools for enforcing security policies on legacy code. Long before “big data” was a hot topic, he and his co-authors designed languages for processing large, ad-hoc data collections. Recognizing trends in hardware, he developed new techniques for verifying the safety of programs executing on faulty processors. And, most recently, foreseeing the rise of software-defined networking, he has worked with people from both the networking and PL communities to develop new, high-level languages (Frenetic, Pyretic) for programming networks. In summary, Prof. Walker is a groundbreaking researcher in programming languages, connecting foundations to novel applications.
Sumit Gulwani has made pioneering contributions to the field of programming languages, especially in the areas of program analysis and program synthesis. Building on his foundational work in program analysis including using randomized algorithms, improving abstract interpretation, and reasoning about programs as continuous functions, Dr. Gulwani recognized the important connection between program verification and program synthesis. His research has demonstrated that imprecise human intent, in the form of examples, natural language, and other kinds of input, can be transformed into incomplete program specifications, which together with ranking techniques can then be used to synthesize intended programs, empowering users to accomplish complex and repetitive programming tasks without needing any knowledge of programming. His contributions include algorithms for synthesizing string transformation programs by examples, published in POPL 2011, and the technical basis for “Flash Fill”, a new feature shipping in Microsoft’s Excel 2013. He has since then extended this line of algorithmic work to synthesizing programs in several other important domains and also broadly advertised this line of work by publishing in top-tier ACM conferences in various other areas including AI, machine learning, HCI, databases, and knowledge discovery. He has also championed the application of program synthesis techniques to developing intelligent tutoring systems for numerous subject domains including introductory programming, mathematics, logic, and automata theory. The visionary aspects of his work were recently recognized by the CACM Editorial Board when two of his recent papers appeared as CACM Research Highlights in the same issue, and a summary of his work on computer-aided Education was accepted to appear as a CACM article.
In summary, Dr. Gulwani is a highly motivated, creative, and inter-disciplinary researcher whose vision is to empower computer users around the world to be more productive and educated. His insights in using program synthesis to address problems in end-user programming and education will have deep and lasting influence.
Lars Birkedal is a world leader in foundational programming languages research, and the pre-eminent researcher of his generation in the area of programming language semantics. His work, spanning a multitude of top journal and conference publications, has had significant impact in many areas. These include foundational type theory, compiler implementation, Milner’s bigraphical reactive systems, logics and models for relational parametricity, and verification technology for semantically complex languages.
Birkedal is a pioneer in “bringing semantics into the 21st century”: developing rigorous and scalable semantic and verification techniques to account for the needs and complexities of modern languages. Toward this end in particular, he has (a) made numerous advances to the theory and practice of region-based memory management, (b) made fundamental contributions to the theory of relational parametricity, which underlies our semantic understanding of abstract data types, and (c) developed higher-order separation logics and other powerful tools for the modular verification of realistic imperative, object-oriented, and concurrent programming patterns.
In short, Birkedal has tackled hard problems of paramount importance to the future of programming language research, and has made startling advancements across the board. He has done so both independently, via the research group he built up at the IT University of Copenhagen, and also through fruitful collaborations with an impressive network of international colleagues, thus setting an excellent example for other junior researchers.
The SIGPLAN 2012 Robin Milner Young Researcher Award goes to Shriram Krishnamurthi, a prolific researcher who brings programming language theory to bear in many other disciplines, thus exposing its foundational value. His research contributions range from type soundness proofs for Java and influential extensions thereof, through foundational aspects of web programming, to model-driven development and empirical studies. The most important aspects of Krishnamurthi’s research are
- that it cuts across multiple disciplines, including education, software engineering, formal methods and security, but always building on the firm ground of programming language theory;
- that it has resulted not only in publications, but also in practical systems that are used in academia and industry; and
- the clarity of its exposition and presentation.
- Shriram is also an influential educator, reaching out beyond the university to infect school kids with algebraic thinking.
In summary, Shriram is an extraordinarily broad researcher, making sustained contributions in important and exciting areas, with a commitment to education that is ensuring that his ideas have even broader impact.