I am an assistant professor in the Programming Languages Group at Delft University of Technology.

I do research on specifying and implementing programming languages. I am particularly interested in type safe languages, i.e., languages with type checkers that verifiably guarantee the absence of errors in programs. My research focuses on principles, techniques, and tools that enable language designers to effectively define and verify type safe languages, and to maintain language definitions as a language evolves.


I am looking for PhD students, or possibly postdoc candidates – contact me or see here for more details.


Selected publications

Adrian D. Mensing, Hendrik van Antwerpen, Casper Bach Poulsen, and Eelco Visser: From Definitional Interpreter to Symbolic Executor. META 2019

Hendrik van Antwerpen, Casper Bach Poulsen, Arjen Rouvoet, and Eelco Visser: Scopes as Types. OOPSLA 2018

Sven Keidel, Casper Bach Poulsen, and Sebastian Erdweg: Compositional Soundness Proofs of Abstract Interpreters. ICFP 2018

Casper Bach Poulsen, Arjen Rouvoet, Andrew Tolmach, Robbert Krebbers, and Eelco Visser: Intrinsically-Typed Definitional Interpreters for Imperative Languages. POPL 2018

Casper Bach Poulsen, Pierre Neron, Andrew Tolmach, and Eelco Visser: Scopes Describe Frames: A Uniform Model for Memory Layout in Dynamic Semantics. ECOOP 2016

Casper Bach Poulsen and Peter D. Mosses: Flag-Based Big-Step Semantics. Special Issue of Journal of Logic and Algebraic Methods in Programming

Casper Bach Poulsen: Extensible Transition System Semantics. PhD Thesis

Casper Bach Poulsen and Peter D. Mosses: Deriving Pretty-Big-Step Semantics from Small-Step Semantics. ESOP 2014