I am interested in all aspects of programming language research with an implementation-focused emphasis on computer systems. Check through my publications for a flavour of research that excites me.

Memory Management

Automatic memory management, or garbage collection, is now mainstream thanks to managed runtime systems like Java and .NET. I work on the construction of rigorous models for memory management, using techniques like micro-economics, control theory and statistics-based machine learning. I am on the steering committee of the UK memory management network.

Cybersecurity

I am interested in systems aspects of cybersecurity. Most recently, I have been focused on deploying programming language runtimes on secure-by-design CHERI platforms.

Compilers

I have worked with static single assignment form (SSA). See my PhD for details of extensions to SSA. I (used to) maintain an SSA bibliography for the community.

Many-core Parallelism

As processors provide increasing numbers of hardware threads, programmers must find appropriate ways to leverage this parallelism in their software. I am investigating runtime support for many-core parallelism, in a managed runtime environment.