My research interests are in programming methodology, that is, in better languages for writing computer programs, and better ways of using the languages we already have. I am particularly concerned with functional languages (which emphasize computing with values rather than with actions) and object-oriented languages (which encourage program structures that reflect the structure of the real-world entities they are modelling), and with ways of expressing and reasoning about recurring patterns in software structure.
I am a member of the Algebra of Programming research group and the Software Engineering research group. I am secretary and a member of IFIP Working Group 2.1 on Algorithmic Languages and Calculi; I am also General Chair of the IFIP TC2 Working Conference on Domain-Specific Languages in Oxford in July 2009. I have a new research project on Reusability and Dependent Types starting in October 2009; there is a fully-funded DPhil studentship (closing date 15th April) associated with the project, and I would welcome expressions of interest.
I am deputy director of the part-time professional Software Engineering Programme, with specific responsibility for the Object Technology subprogramme. I have a joint appointment with the Computing Laboratory and the Department for Continuing Education, and am a fellow of Kellogg College. Before taking up this post in 1999, I held lectureships at Oxford Brookes University and the University of Auckland, New Zealand.