Welcome to Henrik Nilsson's home page!

Picture of Henrik

About me

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.

FRP and Yampa Tutorials

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:

Also check George Giorgidze's home page for the Yampa synthesizer and related libraries.

Upcoming Events

Some upcoming events that I am involved in:

Some Past Events

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, and EOOLT 2016 programme committees.

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 Fly
Slides here.

I oragnised the first Foundations of Programming Away Day, FoPAD 2007.

Records from some FP Lab Away Days:


Current PhD Students: Past PhD Students: Past MPhil Students:

Midlands Graduate School

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:

Other Postgraduate Teaching

Some postgraduate courses I have taught or been involved in:

Undergraduate Teaching

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:

Project Supervision

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.

Contact information


Henrik Nilsson
School of Computer Science
University of Nottingham
Jubilee Campus
Wollaton Road
Nottingham NG8 1BB


+44 (0)115 846 6506


+44 (0)115 951 4254


nhn@cs.nott.ac.uk, henrik@acm.org


Room A08
School of Computer Science
Jubilee Campus
Wollaton Road

Maps and directions for getting to the Jubilee Campus can be found here. Computer Science is in building 4 on the Jubilee Campus map.

Last updated 30 June 2017

Support Wikipedia