History of Research on Programming Languages at Edinburgh University
Early Development and Key Research
Programming languages and foundations have been areas of strength in Edinburgh since the 1960s. Burstall's early work on languages such as POP, NPL and Hope led to the development of pattern matching facilities now standard in most functional programming languages. Milner developed the Logic for Computable Functions (LCF), the Calculus for Communicating Systems (CCS), and the ML programming language, including an approach to polymorphic type inference that has influenced most subsequent statically-typed programming languages, including Haskell, Scala and Java. Plotkin made fundamental contributions to the semantics of programming languages, including relating call-by-name and call-by-value via continuation passing translations, exploring the semantics of concurrent and reactive systems (with Winskel), and introducing Structured Operational Semantics.
Origins of LFCS
The Laboratory for Foundations of Computer Science was founded by Burstall, Milner and Plotkin in 1986. Exploring the foundations of programming through a combination of theoretical rigour and practical experimentation was an explicit goal of LFCS. Over the next quarter-century, many widely-recognised advances have been made at LFCS, including work on the Definition of Standard ML, the pi-calculus, the use of monads in semantics and functional programming, formalised mathematics, logical frameworks, dependent types, and type theory. The papers "A framework for defining logics" (Harper, Honsell, Plotkin, LICS 1987) and "Computational lambda-calculus and monads" (Moggi, LICS 1989) were recognised by LICS Test-of-Time Awards in 2007 and 2009 respectively. The paper "Imperative Functional Programming", by Peyton Jones and Wadler, won the Most Influential Paper award for POPL 1993 (awarded in 2003), and the paper "Naturally Embedded Query Languages", by Tannen, Buneman and Wong (published in ICDT 1994) won the ICDT Test of Time award in 2014. Both papers are based on Moggi's work on monads.
LFCS has grown from its original emphasis on programming languages and computational logic to cover a wide range of topics, including algorithms and complexity, databases, quantum computation, and security. Nevertheless, programming languages remains a central focus for LFCS research, and today, LFCS remains among the best environments in the world to pursue experimental and theoretical research on programming languages and computational logic. Recent students have received several best paper or best student paper awards (Willem Heijltes, LICS 2011; Antony Widjaja To, LICS 2010; Matteo Mio, ETAPS 2011). Matteo Mio also received the Ackermann Award from the European Association for Computer Science Logic in 2013, and a Kurt Gödel Research Prize Fellowship in 2014. Roope Kaivola (LFCS PhD, 1997) received the 2013 Microsoft Research Verified Software Milestone Award for work on verification of Intel's Core i7 CPU. Shayan Najd received a Google European Doctoral Fellowship in 2014.
Robin Milner was honoured with the Turing Award in 1991 for his work on LCF, CCS and ML. Milner, Burstall and Plotkin have each been honoured with the ACM SIGPLAN Programming Languages Acheivement Award, in 2001, 2009 and 2010 respectively. Plotkin was honoured with the Blaise Pascal Medal in Computer and Information Sciences from the European Academy of Sciences in 2011. Gordon Plotkin was also awarded the BCS Lovelace Medal in 2018 recognising his contributions to semantics of programming languages.
In 2012, ACM SIGPLAN established the Robin Milner Young Researcher Award to recognize outstanding contributions by young investigators in the area of programming languages. Also in 2012, the Royal Society established the Royal Society Milner Award, to recognise outstanding achievement in computer science by a European researcher. The first recipient of the Royal Society Milner Award was Gordon Plotkin, in recognition of "... his fundamental research into programming semantics with lasting impact on both the principles and design of programming languages."