Portrait of Dominic Orchard

Dominic Orchard

Stage 2 Year Director (UKC)


Dominic has an undergraduate degree in Computer Science from the University of Warwick and a PhD in Computer Science from the University of Cambridge. He worked as a Research Associate at Imperial College London and Cambridge before joining the University of Kent.

Research interests

I belong to the following research groups:

I am also a Fellow of the Software Sustainability Institute.

Dominic's research primarily focusses on the theory and practice of programming languages, particular type systems, semantics, analysis, and verification. 

I am on the following Programme Committees this year: PLACES 2019, LOLA 2019, PPDP 2019, POPL 2019, IFL 2018, TyDe 2018, BEAT 2019, ICE 2018. I am co-chairing PLACES 2019.

Main projects

  • Granule - Advanced type systems for verification of data treated as a resoruce.
  • CamFort - Lightweight verification of scientific computing models

Broadly I am interested in the intersection between logicsemantics, and types.

I have co-authored several papers introducing and developing the notion of coeffectful program behaviour (ICFP 2016ICFP 2014ICALP 2013). Coeffects are program behaviours which "consume" the execution context, e.g., variables, hardware resources, access policies, library versions, implicit parameters. Coeffect analyses and type theories capture a program's requirements on the execution environment. For example, a type theory corresponding to Bounded Linear Logic is a coeffect system which allows fine-grained control over variable usage.

I am also interested in applying results from programming language research to computational science, in particular for program verification. I am Co-Investigator on the project CamFort: Automated evolution and verification of computational science models joint with the University of Cambridge


I am currently teaching on the following courses:

  • CO519 - Theory of Computing
  • CO661 - Theory and Practice of Concurrency
  • CO545 - Functional and Concurrent Programming
  • CO583 - Introduction to Programming and Web Technologies

I also supervise projects for CO600, so please get in touch if you would like to discuss an idea. Details of my past teaching can be found here.

Last updated