My research interests include functional programming, functional programming environments, and various aspects of design, semantics, and implementation of programming languages in general, such as advanced type systems and their applications. I am also interested in modelling and simulation languages, and how such languages can be improved by using techniques developed in the declarative language community. I got my PhD from Linköpings universitet, where I worked at PELAB (the Programming Environments Laboratory), IDA, on debugging tools for lazy functional languages. The aim was to provide a declarative, source-level view of lazy computations, while making sure that the space and time costs of the techniques are acceptable. After getting my PhD, I was a postdoc within the OASIS project at INRIA Sophia-Antipolis, where I was involved in research concerning a programming environment for Java Cards based on formal semantics. I was also involved in the design of Modelica, an object-oriented, declarative language for non-causal modeling and simulation of continuous systems with discrete features. I then moved to the CS Department at Yale University, where I am worked with Paul Hudak and John Peterson in the Yale Haskell Group on declarative, domain-specific languages for applications such as robotics and vision. This was all within the unifying framework of Functional Reactive Programming (FRP). I have in particular been working on Yampa, our latest FRP implementation, and associated software such as the Yampa robot simulator. At present, I am a lecturer at the School of Computer Science, The University of Nottingham, where I work in the Functional Programming Lab.
My publications, including my PhD thesis, can be found here.
Papers and talks (including slides from a post-graduate course) of a tutorial nature on FRP in general and Yampa in particular can be found here.
Slides for some recent and some not so recent talks I have given can be found here.
Information about volumes I have edited can be found here.
A very alpha release of the Freja compiler and debugger can be found here. (Currently binaries only for SPARC/Solaris. Sources available on request.)
Yampa and related software can be downloaded via the Yampa page (out of date, alas).
Ulf Norell has kindly put together an updated distribution that should work with recent GHC installations:
I am currently on the PC for the following upcoming events:
Records from some FP Lab Away Days:
I chaired and organised EOOLT 2013.
Lennart Augustsson gave a School Seminar hosted by the FP Lab on 25 Feb:
Making Embedded Domain-Specific Languages FlySlides here.
I organised the MGS Christmas Seminars 2012.
I served on the PPDP 2012 programme committee.
I served on the DSLRob 2012 programme committee.
I served on the EOOLT 2011 programme committee.
I served on the DEBS 2011 programme committee.
I served on the PPDP 2010 programme committee.
I served on the ICFP 2008 programme committee.
I served on the EOOLT 2008 programme committee.
I was the general chair of TFP 2007, the Eighth Symposium on on Trends in Functional Programming, which was hosted by Seton Hall University, New York, USA, 2-4 April, 2007.
I oragnised the first Foundations of Programming Away Day, FoPAD 2007.
I was the programme chair and organiser of TFP 2006, the Seventh Symposium on on Trends in Functional Programming, which was hosted by the School of CS&IT, the University of Nottingham, 19 - 21 April, 2006.
The Midlands Graduate School (MGS) in the Foundations of Computing Science was established in 1999 as a collaboration between researchers at the Universities of Birmingham, Leicester, and Nottingham.
I organised the Midlands Graduate School 2007, which was hosted here in Nottingam, 16 - 20 April, 2007.
I have lectured at the Midlands Graduate School regularly since 2005. Slides from some of those years below, including the latest one for 2012:
Some postgraduate courses I have taught or been involved in:
I am currently teaching/coordinating the following modules:
Some modules I've taught/coordinated in the past:
Some modules where I've given guest lectures:
I'm always happy to discuss ideas for individual projects (e.g. Final Year Undergraduate projects (G53IDS) or MSc projects). If you are looking for inspiration, I have compiled a list of suggestions that can be found here. Some are general, some are related to my research interests. Some a quite developed, some are very rough. Have a look. Maybe you'll find something you like, or maybe one of the suggestions will spark your imagination, spawning new and intriguing project ideas.
School of Computer Science
University of Nottingham
Nottingham NG8 1BB
+44 (0)115 846 6506
+44 (0)115 951 4254
School of Computer Science
Maps and directions for getting to the Jubilee Campus can be found here. Computer Science is in building 4 on the Jubilee Campus map.