My publications are available from the University of Kent's Academic Repository.Selected publications
- Combining Effects and Coeffects via Grading - ICFP (2016)
- Effects as Sessions, Sessions as Effects - POPL (2016)
- Coeffects: A calculus of context-dependent computation - ICFP (2014)
- A Computational Science Agenda for Programming Language Research - ICCS (2014)
I also keep a list of my external talks, mostly with links to slides and sometimes YouTube videos.
I belong to the following research groups:Fellow of the Software Sustainability Institute.
Broadly I am interested in the intersection between logic, semantics, and
I have co-authored several papers introducing and developing the notion of coeffectful program behaviour (ICFP 2016, ICFP 2014, ICALP 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
TeachingI am currently teaching:
- CO583 - Introduction to Programming and Web Technologies
- CO545 - Functional and Concurrent Programming
- 9-10th Nov 2016 - Attending the LL2016 - Linear logic: interaction, proofs and computation in Lyon.
- 19-23th Sep 2016 - Attended ICFP 2016 in Nara, Japan presenting my work Combining Effects and Coeffects joint with Marco Gaboardi, Shin-ya Katsumata, Flavien Breuvart, and Tarmo Uustalu
- 12-13th Sep 2016 - I attended WSSSPE4 (Workshop on Sustainable Software for Science, Practice and Experiences) and talked about lightweight verification.