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 (and web coordinator) of the Algebra of Programming research group, and a member of 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; do think about submitting a paper!
I am deputy director of the part-time professional Software Engineering Programme, which 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.