My research is in the broad area of formally motivated computing, focused on programming language design and implementation, in particular functional languages for parallel, distributed and mobile systems. At Heriot-Watt, I work with colleagues in our Dependable Systems Group. With Kevin Hammond at St Andrews, I am co-designer of the Hume programming language. I am currently involved in collaborative projects implementing Hume on heterogeneous platforms, including multi-core & FPGA, and on developing the Box Calculus for reasoning about Hume programs. I am also interested in foundational limitations to computing and their wider philosophical and social implications, working with Paul Cockshott at Glasgow.
I have a BA (Hons) in Computer Science from the University of Essex (1973), a research MSc in Computational Science from the University of St Andrews (1982) and a PhD from Heriot-Watt University (1993). I taught Computer Studies at Napier College (1977-79) and Computing Science at the University of Glasgow (1979-83) before joining Computer Science at Heriot-Watt in 1983. In 1988-89 I spent a year at CSIRO in Sydney, working on language support for a novel parallel architecture.