<
Simon Peyton Jones

Simon Peyton Jones

Lead designer of the Glasgow Haskell Compiler, Principal researcher at Microsoft Research

Simon has been a researcher at Microsoft Research in Cambridge, England since Sept 1998. He's also an Honorary Professor of the Computing Science Department at Glasgow University, where he was a professor during 1990-1998.

Simon is interested in the design, implementation, and application of lazy functional languages. In practical terms, that means he spends most of his time on the design and implementation of the language Haskell. In particular, much of his work is focused around the Glasgow Haskell Compiler, and its ramifications.

Simon is chair of Computing at School, the group at the epicentre of the reform of the national curriculum for Computing in England. Computer science is now a foundational subject, alongside maths and natural science, that every child learns from primary school onwards (background here).

Past Activities

Simon Peyton Jones
Code Mesh LDN
07 Nov 2019
09.15 - 10.15

The revolution in computing education at school: opportunity and challenge

The new English National Curriculum in computing says that every child should learn computer science, as a foundational subject discipline like maths or natural science, from primary school onwards. This is much more than “teaching kids to code”. It represents a huge and welcome shift of perspective, away from technology and towards principles and ideas.

But it’s also a massive challenge. What does a good computer science education look like in primary school classroom? How can teachers with little subject knowledge of computer science teach it? Aren’t computer scientists all socially-challenged male geeks anyway?

In this talk, Simon will explain what’s going on, especially the recent launch of the National Centre of Computing Education. This revolution is taking place in our core expertise, in within yards of our front doors. And we are being invited to contribute to it, and shape how it “lands”. What an opportunity! Let’s grab it; Simon will make concrete suggestions about how.

Simon Peyton Jones
Code Mesh LDN
07 Nov 2019
14.30 - 15.15

Revisiting pattern match overlap checks in Haskell

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 surprisingly tricky.

the 2015 paper “GADTs meet their match” explored a nice, modular account of pattern-match checking that addresses many of these tricky points. Alas, GHC’s implementation of that paper has proved less than satisfactory: it can be terribly slow and misses cases that programmers think look obvious. So Simon and his colleague Sebastian Graf have been radically refactoring the implementation.

In this talk, Simon will give lots of tricky examples of pattern matching, describe how to think about coverage and overlap checking and reflect on how their new refactored implementation works.