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.
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:
Some upcoming events that I am involved in:
I gave a guest lecture on functional programming at St Paul's Girl's School in their GCSE CS class, 14 November 2016. Slides and handout here.
I was an invited speaker at the Paul Hudak Symposium, 29 April 2016. Slides here.
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.
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 chaired and organised EOOLT 2013, the 5th International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools, 19 April, University of Nottingham, UK.
I was the programme chair of FARM 2014, the Second Workshop on Functional Art, Music, Modeling and Design, 6 September, 2014, co-located with ICFP 2014 in Gothenburg, Sweden.
I was the general chair of FARM 2015, the Third Workshop on Functional Art, Music, Modeling and Design, 5 September, 2015, co-located with ICFP 2015 in Vancouver, Canada.
I served on the DEBS 2011 programme committee.
I served on the DSLRob 2010, DSLRob 2011, DSLRob 2012, and DSLRob 2013 programme committees.
I served on the EOOLT 2007, EOOLT 2008, EOOLT 2010, EOOLT 2011, EOOLT 2014, EOOLT 2016, and EOOLT 2017 programme committees.
I served on the Haskell in Leipzig 2017 (HaL 2017) programme committee.
I served on the Haskell Symposium 2017 programme committee.
I served on the ICFP 2008 programme committee.
I served on the IFL 2016 programme committee.
I served on the Modelica 2015 and Modelica 2017 programme committees.
I served on the PADL 2017 programme committee.
I served on the PPDP 2010 and PPDP 2012 programme committees.
Lennart Augustsson gave a School Seminar hosted by the FP Lab on 25 Feb:
Making Embedded Domain-Specific Languages FlySlides here.
I oragnised the first Foundations of Programming Away Day, FoPAD 2007.
Records from some FP Lab Away Days:
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 organised the MGS Christmas Seminars 2012.
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
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.