I am a PhD student at the Programming Languages group at Delft University of Technology. My research focuses on specification of static semantics. In particular, developing constraint approaches to type checking that support rich name binding patterns. My work is implemented as part of the Spoofax Language Workbench. I am being supervised by Prof. Dr. Eelco Visser.

If you want to know more about my research, have a look at my talks and publications, or contact me (details at the bottom of this page).

Recent Publications

  • Pelsmaeker, Daniël A. A., Hendrik van Antwerpen, and Eelco Visser. 2019. “Towards Language-Parametric Semantic Editor Services Based on Declarative Type System Specifications (Brave New Idea Paper).” In ECOOP. https://doi.org/https://doi.org/10.4230/LIPIcs.ECOOP.2019.26. doi details
  • Antwerpen, Hendrik van, Casper Bach Poulsen, Arjen Rouvoet, and Eelco Visser. 2018. “Scopes as Types.” PACMPL 2 (OOPSLA). https://doi.org/https://doi.org/10.1145/3276484. doi details
  • Antwerpen, Hendrik van. 2016. “A Constraint-Based Approach to Name Binding and Type Checking Using Scope Graphs.” Master's thesis, Delft University of Technology. pdf details
  • Antwerpen, Hendrik van, Pierre Néron, Andrew P. Tolmach, Eelco Visser, and Guido Wachsmuth. 2016. “A Constraint Language for Static Semantic Analysis Based on Scope Graphs.” In PEPM, 49–60. https://doi.org/http://doi.acm.org/10.1145/2847538.2847543. doi details

Ongoing Research

My current research is on different operational interpretations of declarative type system specifications. We developed Statix, a meta-language for specification of type systems, with strong support for name binding. I am involved in the following projects around Statix:

  • Defining an operational semantics for Statix so specifications can be used as executable type checkers, by interpreting the typing rules as constraint simplification rules. With Arjen Rouvoet and Casper Bach Poulsen.
  • Developing an incremental type checking algorithm for Statix. With Taico Aerts.
  • Combining Statix specifications with constraint programming techniques to define IDE editor services such as code completion. With Daniel Pelsmaeker.
  • Random generation of well-bound and well-typed programs for testing for testing (e.g., of interpreters). With John Hughes.


  • Teaching for compiler construction in 2017 and 2018. Lectured on type systems and typing constraints, developed homework exercises, exam questions, and was a teaching assistant for the accompanying lab.
  • Supervision of students working on bachelor and master theses related to my research.

Professional Activities

  • Student volunteering for POPL 2016, OOPSLA 2017, and OOPSLA 2018.