logo
School of Computer Science
   
   
  
 

Image of Henrik Nilsson

Henrik Nilsson

Lecturer, Faculty of Science

Contact

Research Summary

Dr Nilsson's research interests include design, semantics, and implementation of programming languages, especially functional languages and declarative languages for hybrid modelling and simulation.… read more

Recent Publications

Current Research

Dr Nilsson's research interests include design, semantics, and implementation of programming languages, especially functional languages and declarative languages for hybrid modelling and simulation. He is also interested in programming environments, one of his main research areas being debugging for lazy functional languages. Additionally, he has a general interest in declarative programming and type systems. Declarative languages allow software to be developed both faster and with higher quality than what traditional imperative languages do. This is true in particular of languages with flexible static type systems since type systems tend to aid software design by requiring central design concepts to be clearly articulated, and by enforcing their consistent use. Two successful examples are the functional languages Haskell and ML. While the acceptance of declarative languages outside the academic community to date has been somewhat limited, many of the ideas developed in the context of such languages have general applicability, and some have found their way into general-purpose, main-stream languages like Java and C#. Domain-Specific Languages (DSL) is another class of languages that could benefit from the insights gained from the research into declarative, statically typed languages. Perhaps even more so than general-purpose languages since the users of DSLs often are domain experts but not expert programmers. Conceptual clarity in the language design and the ability to catch simple programming errors statically thus become even more important than usual. Dr Nilsson has been involved in the design and implementation of DSLs in the Functional Reactive Programming (FRP) family, with the aim of making the advantages of modern functional programming languages available for programming reactive systems, such as autonomous robots. He has also been involved in the design of Modelica, a (mostly) declarative language for non-causal, hybrid modelling and simulation of physical systems (and thus an example of another kind of DSL). Currently Dr. Nilsson is interested in exploiting fundamental conceptual similarities between FRP and Modelica-like languages with the aim of designing a truly declarative language for hybrid modelling and simulation, combining the advantages of functional programming and non-causal modelling.

Future Research

Dr Nilsson is currently developing his research on FRP-inspired declarative languages for hybrid modelling and simulation. He is also interested in exploring new directions in debugging for languages supporting advanced abstractions, such as embedded DSLs and higher-order combinator libraries. Enquiries are welcome.

  • JOHN CAPPER and HENRIK NILSSON, 2012. Towards a Formal Semantics for a Structurally Dynamic Noncausal Modelling Language In: Types in Language Design and Implementation. 39-50
  • THOMAS A. NIELSEN, HENRIK NILSSON and TOM MATHESON, 2011. A formal mathematical framework for physiological observations, experiments and analyses Journal of The Royal Society Interface.
  • NEIL SCULTHORPE and HENRIK NILSSON, 2011. Keeping calm in the face of change: Towards optimisation of FRP by reasoning about change Journal of Higher-Order and Symbolic Computation. 23(2), 227-271
  • HENRIK NILSSON and GEORGE GIORGIDZE, 2010. Exploiting structural dynamism in Functional Hybrid Modelling for simulation of ideal diodes In: 7th EUROSIM Congress on Modelling and Simulation.
  • NEIL SCULTHORPE and HENRIK NILSSON, 2009. Safe Functional Reactive Programming through Dependent Types In: Fourteenth ACM SIGPLAN International Conference on Functional Programming (ICFP'09). 23-34
  • GEORGE GIORGIDZE and HENRIK NILSSON, 2009. Higher-Order Non-Causal Modelling and Simulation of Structurally Dynamic Systems In: 7th International Modelica Conference. 208-218
  • NILSSON, H., ed., 2007. Trends in Functional Programming: Volume 7 Intellect. (In Press.)
  • RYPACEK, O., BACKHOUSE, R. and NILSSON, H., 2006. Type-theoretic design patterns In: 2006 ACM SIGPLAN Workshop on Generic Programming. 13 - 22
  • NILSSON, H., 2005. Dynamic optimization for functional reactive programming using generalized algebraic data types In: 2005 ACM SIGPLAN International Conference of Functional Programming (ICFP'05), Tallinn, Estonia, 26-28 September 2005. 54-65
  • NILSSON, H., 2003. Functional automatic differentiation with Dirac impulses In: Eighth ACM SIGPLAN International Conference on Functional programming. 25-29 August 2003. 153-164
  • NILSSON, H., PETERSON, J. and HUDAK, P., 2003. Functional hybrid modeling. In: DAHL, V. and WADLER, P., eds., Practical Aspects of Declarative Languages: 5th International Symposium, PADL 2003 2562. Springer-Verlag. 376 - 390
  • NILSSON, H., COURTNEY, A. and PETERSON, J., 2003. The Yampa Arcade In: 2003 ACM SIGPLAN Haskell Workshop (Haskell'03). 7 - 18
  • HUDAK, P., COURTNEY, A., NILSSON, H. and PETERSON, J., 2003. Arrows, robots, and functional reactive programming. In: JEURING, J. and PEYTON JONES, S. L., eds., Summer Shcool on Advanced Functional Programming 2002 2638. Springer-Verlag. 159 - 187
  • NILSSON, H., COURTNEY, A. and PETERSON, J., 2002. Functional reactive programming, continued In: ACM SIGPLAN 2002 Haskell Workshop, Pittsburgh, Pennsylvania, 3 October 2002. 51-64
  • PEMBECI, I., NILSSON, H. and HAGER, G., 2002. Functional reactive robotics: System presentation - an excercise in principled integration of domain-specific languages In: Principles and Practice of Declarative Programming (PPDP'02). 168 - 179
  • NILSSON, H., 2001. How to look busy while being as lazy as ever: the implementation of a lazy functional debugger Journal of Functional Programming. 11(6), 629-671
  • ATTALI, I., CAROMEL, D., COURBIS, C., HENRIO, L. and NILSSON, H., 2001. An integrated development environment for Java Card Computer Networks. 36(4), 391 - 405
  • ATTALI, I., CAROMEL, D., COURBIS, C., HENRIO, L. and NILSSON, H., 2000. Smart tools for Java cards In: IFIP Fourth Working Conferenc on Smart Card Research and Advanced Applications.
  • NILSSON, H., 1999. Tracing piece by piece: affordable debugging for lazy functional languages In: 1999 ACM SIGPLAN International Conference on Functional Programming.
  • NILSSON, H. and SPARUD, J., 1997. The evaluation dependence tree as a basis for lazy functional debugging Automated Software Engineering. 4(2), 121 - 150
  • SPARUD, J. and NILSSON, H., 1995. The architecture of a debugger for lazy functional languages In: AADEBUG '95, 2nd Internatinal Workshop on Automated and Algorithmic Debugging.
  • NILSSON, H. and FRITZSON, P., 1994. Algorithmic debugging for lazy functional languages Journal of Functional Programming. 4(3), 337 - 370 (In Press.)
  • NILSSON, H. and FRITZSON, P., 1993. Lazy algorithmic debugging: ideas for practical implementation. In: PETER FRITZSON, ed., Automated and Algorithmic Debugging 749. Springer-Verlag. 117 - 134 (In Press.)

School of Computer Science

University of Nottingham
Jubilee Campus
Wollaton Road
Nottingham, NG8 1BB

telephone: +44 (0) 115 951 4251
fax: +44 (0) 115 951 4254
email: csit-enquiries@cs.nott.ac.uk