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 a Ph.D. or post-doc interested in working on software restructuring using scope graphs. Interested? Email me: c.b.poulsen@tudelft.nl
News
Nov 2022: Co-authored paper with Cas van der Rest on Hefty Algebras: Modular Elaboration of Higher-Order Algebraic Operations accepted for publication and presentation at POPL’23!
Sep 2022: Co-authored paper with Cas van der Rest et al. on Intrinsically-Typed Definitional Interpreters à la Carte accepted for publication and presentation at OOPSLA’22!
Oct 2022: I am a PC member of PEPM’23
Sep 2022: Teaching Compiler Construction
Aug 2022: Moved offices. The PL group is now on the third floor of Van Mourik Broekmanweg 6.
May 2022: After Eelco’s tragic and untimely passing I have taken on a leading role in the NWO MasCot Programming and Validating Software Restructurings project
Apr 2022: Shocked to learn of Eelco Visser’s tragic and untimely passing. PL research has lost a great visionary.
Mar 2022: Co-authored paper with Daniël Pelsmaeker on Language-parametric static semantic code completion accepted for publication and presentation at OOPSLA’22!
Mar 2022: I am a PC member of APLAS’22
Dec 2021: Cas van der Rest’s and my extended abstract on Towards a Language for Defining Reusable Programming Language Components accepted for presentation at TFP’22!
Oct 2021: Hired PhD student Jaro Reinders to work with me on types and effects
Aug 2021: Co-authored paper with Birthe van den Berg et al. on Latent Effects accepted for publication and presentation at APLAS’21!
Selected publications
Casper Bach Poulsen and Cas van der Rest: Hefty Algebras: Modular Elaboration of Higher-Order Algebraic Operations. POPL 2023
Cas van der Rest, Casper Bach Poulsen, Arjen Rouvoet, Peter Mosses, and Eelco Visser: Intrinsically-Typed Definitional Interpreters à la Carte. OOPSLA 2022
Birthe van den Berg, Casper Bach Poulsen, Tom Schrijvers, and Nicolas Wu: Latent Effects for Reusable Language Components. APLAS 2021
Arjen Rouvoet, Casper Bach Poulsen, Robbert Krebbers, and Eelco Visser: Intrinsically-Typed Definitional Interpreters for Linear, Session-Typed Languages. CPP 2020
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: Deriving Pretty-Big-Step Semantics from Small-Step Semantics. ESOP 2014
Blog
- Compiling with Op Trees — 2020-08-01
- Interpreters with Non-Determinism Using a Free Monad — 2019-04-28