Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. Simon was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.
After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University before moving to Microsoft Research (Cambridge) in 1998.
His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines.
More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much.
Talks I've Given
-
The Launch of the Haskell Foundation
Featuring Simon Peyton Jones
In this very special talk Simon Peyton Jones will announce the launch of the Haskell Foundation, an independent, non-profit organisation dedicated to broadening the adoption of Haskell, by supporting its ecosystem of tools, libraries, education, and research.
nonprofit-technology haskell -
Keynote: Revisiting Pattern Match Overlap Checks
Featuring Simon Peyton Jones
How hard can it be to spot missing or overlapping patterns in a Haskell function definition? Surely it’s the least we can expect from a decent compiler? But when you mix in GADTs, pattern guards, view patterns, data families, strict data constructors, and pattern synonyms, matters get...
pattern-matching refactored-implementation gadt ghc haskell -
2
Fireside chat: Martin Odersky & Simon Peyton Jones
Featuring Simon Peyton Jones and Martin Odersky
Fireside chat with Martin Odersky and Simon Peyton Jones hosted by Miles Sabin & Zainab Ali covering topics that matter across the two special communities. Includes Q&A for your burning questions too!
scala functional-programming haskell scalax -
Keynote: Linear Haskell: Practical Linearity in a Higher-Order Polymorphic Language
Featuring Simon Peyton Jones
Linear type systems are more often talked about than used. I have long thought that we should be able to use linearity to improve the expressiveness and efficiency of functional programming languages, especially Haskell. But I always got lost in a deep swamp of exclamation marks and upside down...
ghc functional-programming linear-type-systems keynote haskellx haskell -
Keynote: Compiling without Continuations
Featuring Simon Peyton Jones
GHC compiles Haskell via Core, a tiny intermediate language based closely on the lambda calculus. Almost all GHC’s optimisations happen in Core, but until recently there was an important kind of optimisation that Core really did not handle well. In this talk, you will learn what the problem was,...
haskell haskellx types monads compile compiler ghc -
A reflection on types - Simon Peyton Jones, Microsoft Research
Featuring Simon Peyton Jones
Static type systems are wonderful, but they have their limits, and then you reach for dynamic type and run-time type checks. Haskell has had dynamic types for ages, in the form of the Typeable class, but recent developments has made it feasible to support type-indexed type run-time type...
haskell -
Keynote from Simon Peyton Jones - Into the Core: Understanding GHC’s Intermediate Language
Featuring Simon Peyton Jones
GHC translates all of Haskell into a tiny intermediate language called Core, does a lot of optimisations on Core, and then generates executable code. In this talk I’ll take you on a journey into Core, with several goals. First, if you ever do performance-debugging of a Haskell program you may...
haskellx haskell functional-programming ghc haskell-ghc core-to-core haskell-core core -
Safe, Zero-Cost Coercions in Haskell
Featuring Simon Peyton Jones
Newtypes are the key to data abstraction in Haskell, and come with an crucial performance guarantee: it doesn’t cost anything to use a newtype.
haskell functional-programming -
LENSES: COMPOSITIONAL DATA ACCESS AND MANIPULATION.
Featuring Simon Peyton Jones
Haskell lets you write beautiful, modular code. Rather than waffle generally, I’ll use this talk to look at a particular example, Edward Kmett’s lovely lens library.
haskell scalax lenses jquery types functional-programming -
Lenses: compositional data access and manipulation.
Featuring Simon Peyton Jones
Haskell lets you write beautiful, modular code. Rather than waffle generally, I’ll use this talk to look at a particular example, Edward Kmett’s lovely lens library.
haskell lenses jquery haskellx -
Adventures with types
Featuring Simon Peyton Jones
Static type systems are the world’s most widely applied formal method, in daily use by millions of programmers.
functional-programming haskell fpx static dynamic -
Front end language features
Featuring Simon Peyton Jones
In this talk I’ll reflect on the key features of the language and its community that has led to all this creative development. Despite the title Haskell may not in the end dominate the world, but there are lots of interesting developments afoot, especially in (a) types and (b) parallelism. I’ll...
haskell functional-programming -
Towards Haskell in the Cloud
Featuring Simon Peyton Jones
Simon Peyton-Jones gives a keynote talk for Scala Days on Towards Haskell in the Cloud
haskell cloud scala -
Managing parallelism: embrace diversity, but control side effects
Featuring Simon Peyton Jones
If you want to program a parallel computer, it obviously makes sense to start with a computational paradigm in which parallelism is the default (ie functional programming), rather than one in which computation is based on sequential flow of control (the imperative paradigm). And yet, and yet ......
functional-programming haskell transactional-memory