School of Computer Science
   
   
  
 

Image of Henrik Nilsson

Henrik Nilsson

Associate Professor, 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.

  • HENRIK NILSSON and GUERRIC CHUPIN, 2017. Funky grooves: Declarative programming of fullfledged musical applications. In: 19th International Symposium on Practical Aspects of Declarative Languages (PADL 2017). 10137. 163 - 172
  • HENRIK NILSSON and IVAN PEREZ, 2017. Testing and Debugging Functional Reactive Programming Proceedings of the ACM on Programming Languages. 1(ICFP), 2
  • JAN BRACKER and HENRIK NILSSON, 2016. Polymonad Programming in Haskell In: Proceedings of the 27th symposium on Implementation and Application of Functional Languages (IFL 2015).
  • WARD, WIL O. C., WILKINSON, PAUL B., CHAMBERS, JON E., NILSSON, HENRIK, KURAS, OLIVER and BAI, LI, 2016. Tracking tracer motion in a 4-D electrical resistivity tomography experiment Water Resources Research.
  • JAN BRACKER and HENRIK NILSSON, 2016. Supermonads: One notion to bind them all In: Haskell Symposium. 158-169
  • IVAN PEREZ, MANUEL BÄRENZ and HENRIK NILSSON, 2016. Functional reactive programming, refactored In: Haskell Symposium. 33-44
  • PEREZ, IVAN and NILSSON, HENRIK, 2015. Bridging the GUI Gap with Reactive Values and Relations In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell. 47-58
  • IVAN PEREZ and HENRIK NILSSON, 2015. Bridging the GUI Gap with Reactive Values and Relations In: Proceedings of the 8th ACM SIGPLAN Symposium on Haskell (Haskell'15). 47-58
  • DAVID JANIN and HENRIK NILSSON, eds., 2015. Proceedings of the 3rd ACM SIGPLAN International Workshop on Functional Art, Music, Modeling & Design (FARM 2015) ACM Press.
  • VAN GIJZEL, BAS and NILSSON, HENRIK, 2014. A principled approach to the implementation of argumentation models In: Proceedings of the Fifth International Conference on Computational Models of Argument (COMMA 2014).
  • HENRIK NILSSON and IVAN PEREZ, 2014. Declarative Game Programming (Distilled Tutorial) In: Proceedings of the 16th International Symposium on Principles and Practice of Declarative Programming (PPDP 2014).
  • HENRIK NILSSON and NIELSEN, THOMAS A., 2014. Declarative Modelling for Bayesian Inference by Shallow Embedding In: Proceedings of the 6st International Workshop on Equation-Based Object-Oriented Modeling Languages and Tools (EOOLT 2014). 39-42
  • DAVID MCGILLICUDDY, ANDREW PARKES and HENRIK NILSSON, 2014. An Investigation Into the Use of Haskell for Dynamic Programming In: Proceedings of the 10th International Conference on the Practice and Theory of Automated Timetabling (PATAT 2014). 508-511
  • JOHN JOSEPH CAPPER and HENRIK NILSSON, 2013. Structural types for systems of equations: Type refinements for structurally dynamic first-class modular systems of equations Higher-Order and Symbolic Computation.
  • VAN GIJZEL, BAS and NILSSON, HENRIK, 2013. Haskell Gets Argumentative In: Trends in Functional Programming: 13th International Symposium, TFP 2012, St Andrews, UK, June 2012, Revised Selected Papers. 215-230
  • VAN GIJZEL, BAS and NILSSON, HENRIK, 2013. Towards a framework for the implementation and verification of translations between argumentation models In: Post Proceedings of the 25th symposium on Implementation and Application of Functional Languages (IFL 2013).
  • HENRIK NILSSON, ed., 2013. Proceedings of the 5th International Workshop on Equation-Based Object-Oriented Modelling Languages and Tools (EOOLT 2014) Linköping University Electronic Press.
  • NIELSEN, T.A., NILSSON, H. and MATHESON, T., 2012. A formal mathematical framework for physiological observations, experiments and analyses Interface. 9(70), 1040-1050
  • 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
  • DAVID BROMAN and HENRIK NILSSON, 2012. Node-Based Connection Semantics for Equation-Based Object-Oriented Modeling Languages In: Proceedings of the Fourteenth International Symposium on Practical Aspects of Declarative Languages (PADL 2012). 258-272
  • JOHN JOSEPH CAPPER and HENRIK NILSSON, 2011. Static Balance Checking for First-Class Modular Systems of Equations In: Trends in Functional Programming: 11th International Symposium, TFP 2010, Norman, OK, USA, May 2010, Revised Selected Papers. 50-65
  • GEORGE GIORGIDZE and HENRIK NILSSON, 2011. Mixed-level Embedding and JIT Compilation for an Iteratively Staged DSL In: Proceedings of the 19th Workshop on Functional and (Constraint) Logic Programming (WFLP 2010). 48-65
  • GEORGE GIORGIDZE and HENRIK NILSSON, 2011. Embedding a Functional Hybrid Modelling Language in Haskell In: Implementation and Application of Functional Languages: 20th International Symposium, IFL 2008, Revised Selected Papers. 138-155
  • SCULTHORPE, N. and NILSSON, H., 2010. Keeping calm in the face of change: towards optimisation of FRP by reasoning about change 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.
  • NIELSEN, THOMAS A., NILSSON, HENRIK and MATHESON, TOM, 2010. A functional calculus of physiological evidence
  • NIELSEN, THOMAS A., MATHESON, TOM and NILSSON, HENRIK, 2010. Braincurry: A domain-specific language for integrative neuroscience In: Trends in Functional Programming Volume 10 (TFP 2009, Revised Selected Papers). 161-176
  • PETER THIEMANN and HENRIK NILSSON, eds., 2010. Journal of Functional Programming: Special Issue Dedicated to ICFP 2008
  • SCULTHORPE, N. and NILSSON, H., 2009. Safe functional reactive programming through dependent types In: ICFP '09: proceedings of the Fourteenth ACM SIGPLAN International Conference on Functional Programming (ICFP'09). 23-34
  • GIORGIDZE, G. and NILSSON, H., 2009. Higher-order non-causal modelling and simulation of structurally dynamic systems In: 7th International Modelica Conference. 208-218
  • NIELSEN, THOMAS A., NILSSON, HENRIK and MATHESON, TOM, 2009. New eyes on visual habituation in locust: an experiment description language for integrative neuroscience
  • HENRIK NILSSON, 2009. Type-Based Structural Analysis for Modular Systems of Equations Simulation News Europe. 19(1), 17-28
  • NEIL SCULTHORPE and HENRIK NILSSON, 2009. Optimisation of Dynamic, Hybrid Signal Function Networks In: Trends in Functional Programming Volume 9 (TFP'08). 97-112
  • GEORGE GIORGIDZE and HENRIK NILSSON, 2008. Switched-On Yampa: Declarative Programming of Modular Synthesizers In: Practical Aspects of Declarative Languages (PADL) 2008. 282-298
  • NILSSON, H., ed., 2007. Trends in Functional Programming: Volume 7 Intellect. (In Press.)
  • HENRIK NILSSON, JOHN PETERSON and PAUL HUDAK, 2007. Functional Hybrid Modeling from an Object-Oriented Perspective Simulation News Europe. 17(2), 29-38
  • 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
  • HENRIK NILSSON, ed., 2004. Haskell '04: Proceedings of the 2004 ACM SIGPLAN workshop on Haskell ACM.
  • 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.
  • ISABELLE ATTALI, DENIS CAROMEL, HENRIK NILSSON and MARJORIE RUSSO, 2000. From Executable Formal Specification to Java Property Verification In: Second ECOOP Workshop on Formal Techniques for Java Programs. 1-7
  • NILSSON, H., 1999. Tracing piece by piece: affordable debugging for lazy functional languages In: 1999 ACM SIGPLAN International Conference on Functional Programming.
  • HENRIK NILSSON, 1998. Declarative Debugging for Lazy Functional Languages
  • 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.)
  • HENRIK NILSSON and PETER FRITZSON, 1992. Algorithmic Debugging for Lazy Functional Languages In: Programming Language Implementation and Logic Programming (PLILP '92). 385-399
  • HENRIK NILSSON, 1991. Freja: A Small Non-Strict, Purely Functional Language

School of Computer Science

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

For all enquires please visit:
www.nottingham.ac.uk/enquire