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.