I’m a computer science researcher. I work on programming languages, with a particular focus on language features for supporting concurrent programming. I’m also interested in distributed systems and personal computing. I live in Glasgow, Scotland. My main current project is Syndicate, a programming language design for concurrent and interactive programming.
Some of the content available in these pages:
A few interesting tangents—projects that aren’t big enough for a page of their own.
Talks I have given (including slides and video where available).
My research focuses on Network-Aware Programming: the design and implementation of programming languages that incorporate ideas from distributed systems and networking.
More broadly, I’m interested in interpretation very generally, both the horizontal kind that crops up when two programs exchange data across a communications interface of some kind, and the vertical kind that appears when you have a host/guest relationship, such as that between a virtual machine and an operating system, or between a physical server and a hypervisor, or between an interpreter and a program, or between a program and its configuration files. Browsing around my projects, big and small, will give a more detailed view of the kinds of things I mean.
I’ve recently resumed writing blog posts at eighty-twenty.org about the things that have been occupying my mind.