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.
Notices
I am looking for PhD students, or possibly postdoc candidates – contact me or see here for more details.
News
Jan 2021: Gave talk at PEPM’21 about short paper titled Staged Effects and Handlers for Modular Languages with Abstraction; talk available here
Oct 2020: New paper Knowing When to Ask, with Arjen Rouvoet, Hendrik van Antwerpen, Robbert Krebbers, and Eelco Visser, presented at OOPSLA’20
Jan 2020: Co-chaired PEPM’20 in New Orleans
Dec 2019: Hired PhD student Cas van der Rest to work with me on type safe language composition!
Oct 2019: Attending SPLASH’19
Sep 2019: New paper From Definitional Interpreter to Symbolic Executor, with Adrian Mensing, Hendrik van Antwerpen, and Eelco Visser to be presented and appear in the proceedings of META’19
Jul 2019: I have been awarded a Veni grant on Composable and Safe-by-Construction Programming Language Definitions!
Apr 2019: Blog post about using a free monad to define interpreters for languages with non-determinism
Mar 2019: I will be PC co-chair for the 2020 edition of PEPM (Workshop on Partial Evaluation and Program Manipulation). Submit your best papers!
Mar 2019: I will be a PC member of SLE 2019 (CFP). Submit your best papers!
Jan 2019-Apr 2019: teaching Concepts of Programming Languages
Jan 2019: I’ve joined the Programming Languages Research Group in Delft in a new role as assistant professor!
Oct 2018: member of POPL’19 Artifact Evaluation Committee
Aug 2018: Scopes as Types accepted for publication at OOPSLA’18
Selected publications
Arjen Rouvoet, Casper Bach Poulsen, Robbert Krebbers, and Eelco Visser: Intrinsically-Typed Definitional Interpreters for Linear, Session-Typed Languages. CPP 2020
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 and Peter D. Mosses: Deriving Pretty-Big-Step Semantics from Small-Step Semantics. ESOP 2014
Blog
- Interpreters with Non-Determinism Using a Free Monad — 2019-04-28