Magnus Madsen

Photo of Magnus Madsen

I am an associate professor at the Department of Computer Science at Aarhus University.

My research area is programming language design, compilers, and type and effect systems.

I am the lead developer of the Flix programming language.

You can reach me at My office is in Turing-215.

My DBLP, Google Scholar, and GitHub profiles.


PhD Students

  1. Associated Effects (PLDI '24)
    Matthew Lutze, Magnus Madsen
  2. Scientists and Code: Programming as a Tool (PLATEAU '24)
    Caroline Berger, Matthew Lutze, Niklas Elmqvist, Magnus Madsen and Clemens Nylandsted Klokmose
  3. Fast and Efficient Boolean Unification for Hindley-Milner-Style Type and Effect Systems (OOPSLA '23)
    Magnus Madsen, Jaco van de Pol, Troels Henriksen
  4. With or Without You: Programming with Effect Exclusion (ICFP '23)
    Matthew Lutze, Magnus Madsen, Philipp Schuster, Jonathan Brachthäuser
  5. Programming with Purity Reflection: Peaceful Coexistence of Effects, Laziness, and Parallelism (ECOOP '23)
    (Distinguished Paper Award)
    Magnus Madsen, Jaco van de Pol
  6. Restrictable Variants: A Simple and Practical Alternative to Extensible Variants (ECOOP '23)
    Magnus Madsen, Jonathan Starup Lindegaard, Matthew Lutze
  7. Breaking the Negative Cycle: Exploring the Design Space of Stratification for First‑Class Datalog Constraints (ECOOP '23)
    Jonathan Starup Lindegaard, Magnus Madsen, Ondřej Lhoták
  8. The Principles of the Flix Programming Language (Onward! '22)
    Magnus Madsen
  9. Flix: A Meta Programming Language for Datalog (Datalog 2.0 '22)
    Magnus Madsen, Jonathan Starup Lindegaard, Ondřej Lhoták
  10. Relational Nullable Types with Boolean Unification (OOPSLA '21)
    Magnus Madsen, Jaco van de Pol
  11. Fixpoints for the Masses: Programming with First-Class Datalog Constraints (OOPSLA '20)
    Magnus Madsen, Ondřej Lhoták
  12. Polymorphic Types and Effects with Boolean Unification (OOPSLA '20)
    Magnus Madsen, Jaco van de Pol
  13. Fuzzing Channel-Based Concurrency Runtimes using Types and Effects (OOPSLA '20)
    Quentin Stievenart, Magnus Madsen
  14. A Semantics for the Essence of React (ECOOP '20)
    Magnus Madsen, Ondřej Lhoták, Frank Tip
  15. Finding Broken Promises in Asynchronous JavaScript Programs (OOPSLA '18)
    Saba Alimadadi, Di Zhong, Magnus Madsen, Frank Tip
  16. Implicit Parameters for Logic Programming (PPDP '18)
    Magnus Madsen, Ondřej Lhoták
  17. Safe and Sound Program Analysis with Flix (ISSTA '18)
    Magnus Madsen, Ondřej Lhoták
  18. Tail Call Elimination and Data Representation for Functional Languages on the Java Virtual Machine (CC '18)
    Magnus Madsen, Ramin Zarifi, Ondřej Lhoták
  19. A Model for Reasoning About JavaScript Promises (OOPSLA '17)
    Magnus Madsen, Ondřej Lhoták, Frank Tip
  20. From Datalog to Flix: A Declarative Language for Fixed Points on Lattices (PLDI '16)
    Magnus Madsen, Ming-Ho Yee, Ondřej Lhoták
  21. Feedback-Directed Instrumentation for Deployed JavaScript Applications (ICSE '16)
    (Distinguished Paper Award)
    Magnus Madsen, Frank Tip, Esben Andreasen, Koushik Sen, Anders Møller
  22. Static Analysis of Event-Driven Node.js JavaScript Applications (OOPSLA '15)
    Magnus Madsen, Frank Tip, Ondřej Lhoták
  23. Sparse Dataflow Analysis with Pointers and Reachability (SAS '14)
    Magnus Madsen, Anders Møller
  24. String Analysis for Dynamic Field Access (CC '14)
    Magnus Madsen, Esben Andreasen
  25. Practical Static Analysis of JavaScript Applications in the Presence of Frameworks and Libraries (FSE/ESEC '13)
    Magnus Madsen, Benjamin Livshits, Michael Fanning
  26. Modeling the HTML DOM and Browser API in Static Analysis of JavaScript Web Applications (FSE/ESEC '11)
    Simon Holm Jensen, Magnus Madsen, Anders Møller

Academic Service

(Journals and minor workshops omitted.)

last updated December 30th, 2023