Jan Midtgaard

Associate Professor
University of Southern Denmark

Email: mail@janmidtgaard.dk
Skype: janmidtgaard
Profiles: DBLP
Google Scholar
Orcid
LinkedIn
Github
My research centers around programming languages and the technology surrounding them. I have a particular expertise in functional programming languages, program analyses based on abstract interpretation, and property-based testing (aka. QuickCheck).

My course material on abstract interpretation is available here (last held as a winter school in St. Petersburg).

A newer course on QuickCheck (in OCaml) is available here (held twice at DTU Compute).

Short bio: I hold a PhD degree from BRICS, Department of Computer Science, University of Aarhus (AU). My supervisor was Olivier Danvy. During my education I visited Patrick Cousot's group at the Département d'Informatique at Ecole Normale Supérieure in Paris and professor Norman Ramsey at the Division of Engineering and Applied Sciences at Harvard University. After graduating I moved to Rennes in France to work at IRISA / INRIA Rennes - Bretagne Atlantique with Thomas P. Jensen in the Lande (now: Celtique) project. In 2009 I was supported by the Carlsberg Foundation as a post-doc initially with John P. Gallagher in the PLIS group at CBIT, Roskilde University and later back at AU with Michael I. Schwartzbach. I was at AU for a total of five years as lecturer and researcher in the Programming Languages group, for the last 1.5 years with Anders Møller at CASA. I then worked for 2.5 years with Hanne and Flemming Nielson in the Section for Formal Methods (formerly: Language-Based Technology) at DTU Compute, Technical University of Denmark. Since August 2017 I'm Associate Professor in the Software Engineering Section at the Maersk Mc-Kinney Moller Institute at the University of Southern Denmark.

I'm married to practicing psychologist Vibeke Bie and we have two children. My Erdős number is (at most) 5.

News
Mar 2018: Uploaded a corrigendum to 'Effect-Driven QuickChecking of Compilers'.
Feb 2018: Started teaching 'Functional Programming and Property-Based Testing' as a new MSc course at SDU.
Finalized the camera-ready version of 'QuickChecking Patricia Trees'.
Jan 2018: Gave the invited talk 'Developments in Property-Based Testing' at PEPM'18 in Los Angeles.
Dec 2017: Visited Chalmers to be on the evaluation committee of Jacob Lidman.
Nov 2017: 'QuickChecking Patricia Trees' is accepted to the TFP'17 post-proceedings.
Sep 2017: Participated in and presented our work at ICFP'17 in Oxford. Here's a video of my talk.
Accepted an invitation as invited speaker at PEPM'17.
Revised and submitted 'QuickChecking Patricia Trees' for the TFP'17 post-proceedings.
Started teaching 'Distribution and Integration Technologies' at SDU.
Aug 2017: Started new job as Associate Professor at the University of Southern Denmark.
Jun 2017: The paper 'Effect-Driven QuickChecking of Compilers' is accepted to ICFP'17.
May 2017: New paper 'QuickChecking Patricia Trees' accepted for presentation at TFP'17.
An extended version of 'Quickchecking Static Analysis Properties' is accepted to STVR.
Feb 2017: Restored the site after a DNS issue.
Jan 2017: Teaching a 3-week graduate course on QuickCheck at DTU Compute.
Activities
Organization:
2018: FLOPS, PPDP (PC-member)
2016: SAS, ML, Quatic V&V track (PC-member), DANSAS (co-organizer)
2015: Scheme (PC-member)
2014: Neil D. Jones workshop (co-organizer)
2013: POPL (ERC-member), DANSAS (co-organizer)
2012: NSAD (PC co-chair), ICFP (PC-member), DANSAS (co-organizer)
2011: DSL, Scheme (PC-member), DANSAS (co-organizer)
2010: PEPM (PC-member), DANSAS (co-organizer)
2009: DANSAS (co-organizer)
Talks:
2018: PEPM (invited)
2017: ICFP [video], TFP
2016: SAS, TAPAS (invited), PPDP, Dagstuhl Seminar 16131
2015: ICST, LBT seminar@DTU, IDEA4CPS workshop
2014: IMDEA Software, DANSAS, Neil D. Jones workshop [video]
2013: PPDP, COPLAS seminar@ITU, PL seminar@AU
2012: SAS, CS colloquium@SDU, PL seminar@AU
2011: NII Shonan Meeting
2009: ICFP [video], Mini Workshop on CFA
2008: SAS, CS colloquium@SDU, COPLAS seminar@DIKU, DES seminar@AAU, PL seminar@AU,
...
Teaching and Supervision

I have taught and co-taught the following courses:

Furthermore I have (co-)supervised the following MSc thesis students:

Publications

QuickChecking Patricia Trees
Jan Midtgaard
To appear in post-proceedings of the 18th Symposium on Trends in Functional Programming (TFP 2017),
Lecture Notes in Computer Science, vol. 10788, © Springer-Verlag 2018, [paper], [code]

Developments in Property-Based Testing (Invited Talk)
Jan Midtgaard
In Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM 2018),
p 1, © ACM Press 2018

Effect-Driven QuickChecking of Compilers
Jan Midtgaard, Mathias Nygaard Justesen, Patrick Kasting, Flemming Nielson, Hanne Riis Nielson
In Proceedings of the ACM on Programming Languages, Volume 1, Issue ICFP, Sep. 2017, Article No.15,
pp. 15:1-15:23, © ACM Press 2017, [DOI link], [corrigendum], [full version pdf], [prototype], [docker image], [video]

Quickchecking Static Analysis Properties
Jan Midtgaard, Anders Møller
In Software: Testing, Verification and Reliability (Special Issue), volume 27, issue 6, Sep. 2017, © Wiley 2017, [DOI link], [author version]
Extended version of our ICST'15-paper.

A Parametric Abstract Domain for Lattice-Valued Regular Expressions
Jan Midtgaard, Flemming Nielson, Hanne Riis Nielson
In Static Analysis, 23rd International Symposium (SAS 2016),
Lecture Notes in Computer Science, vol. 9837, pp. 338-360, © Springer-Verlag 2016, [DOI link], [full version pdf], [prototype]

Iterated Process Analysis over Lattice-Valued Regular Expressions
Jan Midtgaard, Flemming Nielson, Hanne Riis Nielson
In Proceedings of the 18th International Symposium on Principles and Practice of Declarative Programming (PPDP 2016),
pp 132-145, © ACM Press 2016, [free ACM link], [full version pdf], [web client prototype], [source code]

Systematic Derivation of Correct Variability-Aware Program Analyses
Jan Midtgaard, Aleksandar S. Dimovski, Claus Brabrand, Andzrej Wąsowski
In Science of Computer Programming, volume 105, pp. 145-170, © Elsevier 2015, [DOI link]
Extended version of our MODULARITY'14-paper.

A Case Study in Modular Programming: Using AspectJ and OCaml in an Undergraduate Compiler Project
Aske Simon Christensen, Jan Midtgaard, Johnni Winther, Ian Zerny
AU E-book. Apr. 2015, [free AU link]

Quickchecking Static Analysis Properties
Jan Midtgaard, Anders Møller
In Proceedings of the 8th IEEE International Conference on Software Testing, Verification and Validation (ICST 2015), Apr. 2015,
© IEEE 2015, [pdf]

Systematic Derivation of Static Analyses for Software Product Lines
Jan Midtgaard, Claus Brabrand, Andzrej Wąsowski
In Proceedings of the 13th International Conference on Modularity (MODULARITY 2014),
pp 181-192, © ACM Press 2014, [free ACM link]
Extended version available as ITU technical report TR-2014-170.

Engineering Definitional Interpreters
Jan Midtgaard, Norman Ramsey, Bradford Larsen
In Proceedings of the 15th International Symposium on Principles and Practice of Declarative Programming (PPDP 2013),
pp 121-132, © ACM Press 2013, [free ACM link] [Full version and source code]

Monadic Abstract Interpreters
Ilya Sergey, Dominique Devriese, Matthew Might, Jan Midtgaard, David Darais, Dave Clarke, Frank Piessens
In Proceedings of the 34th ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI 2013)
pp 399-410, © ACM Press 2013, [free ACM link]

Handling Overflow in MLton
Alexander Bjerremand Hansen, Jan Midtgaard
In ACM SIGPLAN Workshop on ML, Sep. 2012, [pdf]

A Structural Soundness Proof for Shivers's Escape Technique: A Case for Galois Connections
Jan Midtgaard, Michael D. Adams, Matthew Might
In Static Analysis, 19th International Symposium (SAS 2012),
Lecture Notes in Computer Science, vol. 7460, 352-369, © Springer-Verlag 2012, [DOI link], [pdf]

Calculating Graph Algorithms for Dominance and Shortest Path
Ilya Sergey, Jan Midtgaard, Dave Clarke
In Mathematics of Program Construction (MPC 2012),
Lecture Notes in Computer Science, vol. 7342, pp 132-156, © Springer-Verlag 2012, [DOI link]

Dominance Analysis via Ownership Types and Abstract Interpretation
Ilya Sergey, Jan Midtgaard, Dave Clarke
Technical report, CW615, Katholieke Universiteit Leuven, December 2011.

Control-Flow Analysis of Function Calls and Returns by Abstract Interpretation
Jan Midtgaard, Thomas P. Jensen
In Information and Computation, volume 211, pp. 49-76, © Elsevier 2012, [DOI link]
Extended version of our ICFP'09-paper.

Flow-Sensitive Type Recovery in Linear-Log Time
Michael D. Adams, Andrew W. Keep, Jan Midtgaard, Matthew Might, Arun Chauhan, R. Kent Dybvig
In Proceedings of the 26th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2011)
pp 483-498, © ACM Press 2011, [free ACM link]

Technical Perspective: Abstracting Abstract Machines
Olivier Danvy, Jan Midtgaard
In Communications of the ACM, volume 54, number 9, pp. 100, © ACM Press 2011, [free ACM link]

Subcubic Control Flow Analysis Algorithms
Jan Midtgaard, David Van Horn
Accepted for publication in Higher-Order and Symbolic Computation
Older version available as Roskilde University computer science research report #125, May 2009, [pdf]

Control-Flow Analysis of Function Calls and Returns by Abstract Interpretation
Jan Midtgaard, Thomas P. Jensen
In Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP 2009),
pp 287-298, © ACM Press 2009, [free ACM link], [video]
Extended version available as INRIA research report RR-6681

A Calculational Approach to Control-flow Analysis by Abstract Interpretation
Jan Midtgaard, Thomas P. Jensen
In Static Analysis, 15th International Symposium (SAS 2008),
Lecture Notes in Computer Science, vol. 5079, pp 347-362, © Springer-Verlag 2008, [DOI link], [pdf]

Control-flow Analysis of Functional Programs
Jan Midtgaard
In ACM Computing Surveys, volume 44, issue 3, pp. 10:1-10:33, June 2012.
© ACM, 2010, [free ACM link]
[Additional material available here]. Older version available as BRICS technical report RS-07-18

Transformation, Analysis, and Interpretation of Higher-Order Procedural Programs
Jan Midtgaard
PhD Dissertation, Department of Computer Science, University of Aarhus, 2007

A Functional Correspondence between Monadic Evaluators and Abstract Machines for Languages with Computational Effects
Mads Sig Ager, Olivier Danvy, Jan Midtgaard
In Theoretical Computer Science, volume 342, issue 1, pp 149-172, © Elsevier 2005, [DOI link]
Extended version available as BRICS technical report RS-04-28

From Implicit to Explicit Contexts in Operational Semantics
Jan Midtgaard
PhD progress report, Department of Computer Science, University of Aarhus, 2004

A Functional Correspondence between Call-by-Need Evaluators and Lazy Abstract Machines
Mads Sig Ager, Olivier Danvy, Jan Midtgaard
In Information Processing Letters, volume 90, number 5, pp. 223-232, © Elsevier 2004, [DOI link]
Extended version available as BRICS technical report RS-04-3

From Interpreter to Compiler and Virtual Machine: a Functional Derivation
Mads Sig Ager, Dariusz Biernacki, Olivier Danvy, Jan Midtgaard
BRICS technical report RS-03-14

A Functional Correspondence between Evaluators and Abstract Machines
Mads Sig Ager, Dariusz Biernacki, Olivier Danvy, Jan Midtgaard
In Proceedings of the Fifth ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP 2003),
pp 8-19, © ACM Press 2003, [free ACM link]
Also available as BRICS technical report RS-03-13

Valid HTML 4.01! Valid CSS! Use any browser!