I am a computer science researcher and practitioner. My interests are in programming languages, their design and implementation, developer tooling and static analysis techniques. During my PhD research I developed a meta-language to declaratively specify name binding and typing rules. I currently work at GitHub where I am part of the team that works on code navigation and code search. If you're interested in any of this, feel free to contact me (details at the bottom of this page).

News

Research

I did my PhD research at the Programming Languages group at Delft University of Technology under the supervision of Prof. Dr. Eelco Visser. My research focused on specification of static semantics. Particularly, developing constraint approaches to type checking that support rich name binding patterns. My work is implemented as part of the Spoofax Language Workbench.

If you want to know more about my research, have a look at my talks and publications.

Most Recent Publications

  • Zwaan, Aron, Hendrik van Antwerpen, and Eelco Visser. 2022. “Incremental Type-Checking for Free: Using Scope Graphs to Derive Incremental Type-Checkers.” PACMPL 6 (OOPSLA2): 424–48. https://doi.org/10.1145/3563303. pdf doi
  • Pelsmaeker, Daniël A. A., Hendrik van Antwerpen, Casper Bach Poulsen, and Eelco Visser. 2022. “Language-Parametric Static Semantic Code Completion.” PACMPL 6 (OOPSLA): 1–30. https://doi.org/10.1145/3527329. pdf doi
  • Zwaan, Aron, and Hendrik van Antwerpen. 2023. “Scope Graphs: The Story so Far.” In EVCS, edited by Ralf Lämmel, Peter D. Mosses, and Friedrich Steimann. Vol. 109. OASIcs. https://doi.org/10.4230/OASIcs.EVCS.2023.32. pdf doi
  • Creager, Douglas A., and Hendrik van Antwerpen. 2023. “Stack Graphs: Name Resolution at Scale.” In EVCS. Vol. 109. OASIcs. https://doi.org/10.4230/OASICS.EVCS.2023.8. pdf doi
  • Antwerpen, Hendrik van. 2024. “Declarative Name Binding for Type System Specifications.” PhD thesis, Delft University of Technology. https://doi.org/10.4233/uuid:4bf44aa1-779c-4a96-8c55-5e1b54e16119. pdf doi
  • ———. 2024. “Propositions Accompanying the Dissertation ‘Declarative Name Binding for Type System Specifications.’” Delft University of Technology. https://doi.org/10.4233/uuid:4bf44aa1-779c-4a96-8c55-5e1b54e16119. pdf doi

Research Projects

My PhD research focused 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 was 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.
  • 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.
  • Developing incremental type checkers for Statix. With Aron Zwaan.

Teaching

  • 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.