PhD candidate at the Computer Lab, University of Cambridge.
I have now submitted my thesis and have essentially left Cambridge. Follow me on Twitter if you want to know what I'm up to nowadays.
Termination combinators forever
with Simon Peyton Jones and Dimitrios Vytiniotis, June 2011. Submitted to the Haskell Symposium '11.
Describes a combinator library for building well-quasi-orders, which are useful for constructing termination tests for symbolic methods. We show how the classic Tree Theorem is related to data types presented as functor fixed points, and describe how the library can optimise the implementation of the constructed well-quasi-orders.
Improving supercompilation: tag-bags, rollback, speculation, normalisation, and generalisation
with Simon Peyton Jones, March 2011. Rejected by ICFP '11.
Describes a number of ways to improve our supercompilation algorithm to make it generate even faster programs, and do so more robustly.
Supercompilation by Evaluation [Slides]
with Simon Peyton Jones, July 2010. Presented at the Haskell Symposium '10.
Reformulates the supercompilation algorithm to explicitly be in terms of an evaluator, and extends call-by-need supercompilation to recursive let bindings.
Ypnos: Declarative, Parallel Structured Grid Programming [Errata]
with Dominic Orchard and Alan Mycroft, May 2009. Presented at the workshop on Declarative Aspects of Multicore Programming '10.
A declarative domain-specific language for expressing structured grid computations in a format that the compiler can reliably generate efficient code from.
Types are Calling Conventions [Discuss] [Slides]
with Simon Peyton Jones, May 2009. Presented at the Haskell Symposium '09.
Describes a nice little intermediate language for compiling a lazy functional programming language, and some optimisations we can express with it.
Adding SQL-Style List Comprehensions to the Glasgow Haskell Compiler
supervised by Simon Peyton Jones, 2007-2008. Undergraduate dissertation for the Computer Science Tripos Part II.
Description of my implementation of an extension of list comprehensions with SQL-like features such as grouping and sorting in GHC, which are also described in the GHC user's guide and the paper I based my implementation on.
Optimising Functional Programming Languages [Keynote Source File]
An overview of deforestation techniques for functional programming languages. Part of the Current Research Topics lecture series 2010.