My publications are listed on the publications page.
- Project CaMELot: Catching and Mitigating Event-Loop Concurrency Issues (2021–2023, funded by EPSRC)
The pessimistic view is that programs will always have bugs.
The optimistic one is that we can teach our runtime systems to detect them
and automatically prevent them from causing problems.
- Safely Combining Concurrency Abstractions (since 2012)
Concurrent programming is hard, and we make it harder by using abstractions that cannot be combined safely.
In this project, we search for safe and efficient combinations.
- Meta-Level Engineering and Tooling for Complex Concurrent Systems (2016–2021)
In this project, we work on instrumentation and tooling for applications that combine concurrency abstractions.
Partners: Vrije Universiteit Brussel, Johannes Kepler University Linz
- Building Faster Languages Faster! (since 2013)
Writing custom VMs for DSLs or research languages is not practical.
So, how can we reuse JIT compilers for new languages?
- SOM: Simple Object Machine (maintainer since 2012)
A simple Smalltalk for teaching and experimenting with language implementation techniques. Implemented among others in Java, C, C++, Smalltalk, and Python.
SOM++ used by IBM to showcase Project OMR's GC and JIT compiler
SOM implemented based on Oracle Lab's Truffle and Graal platform.
SOM implemented with RPython, similar to TruffleSOM, showcasing the power of self-optimizing interpreters.
- OMOP: Supporting Concurrency Abstractions in Virtual Machines (2008–2013)
An Ownership-based Metaobject Protocol to support concurrent programming in multi-language VMs
- Project Renaissance: Harness Emergence (2009–2011)
Avoid the Concurrency Trap by Embracing Non-Determinism.
Partners: IBM Research, Portland State University, and Vrije Universiteit Brussel
PhD Student Guidance, Mentoring, Collaboration
I have and had the pleasure
to collaborate with the following people over the years
(in reverse chronological order).
- Sophie Kaleba, since 2019
- Dominik Aumayr, since 2017
- Carmen Torres López, since 2016
- Benoit Daloze, 2015–2019
- Guido Chari, 2014–2017
- Clément Béra, 2014–2015
- Camillo Bruni, 2014
- Janwillem Swalens, 2013–2015
- Thierry Renaux, 2012–2015
- Mattias De Wael, 2011–2015
- Joeri De Koster, 2009–2015
- Member of the external review committee of OOPSLA'20
- Program Committee Member of Conferences:
- Program Committee Member of other events:
SPLASH'17 Workshops, COP'17, PASS'17, OOPSLA AEC'17, VMM'17, ICOOOLPS'17,
AGERE'15, ECOOP AEC'15,
- ACM Student Research Competition at SPLASH'18, <Programming>'17
- Sub-Reviewer: OOPSLA'13, ECOOP'13, Coordination'13, TOOLS'11, AOSD'10, Coordination'10, DLS'10, ECOOP'10, OOPSLA'10, AOSD'09, DLS'09
- Journal Reviewing:
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Programming Journal: The Art, Science, and Engineering of Programming
ACM Computing Surveys
The Computer Journal
Journal on Computer Languages, Systems and Structures
Journal of Systems and Software
Journal of Science of Computer Programming
Journal of Logical and Algebraic Methods in Programming
Journal of Parallel Computing
Latest Research-Related Posts
Jun 16, 2021
Interpreter Generators: A Brief Look at Existing Work
Feb 18, 2021
Open Postdoc Position on Language Implementation and Concurrency
Jan 2, 2021
Towards a Synthetic Benchmark to Assess VM Startup, Warmup, and Cold-Code Performance
Dec 30, 2020
The Shape of 6M Lines of Ruby
Dec 14, 2020
The Shape of 1.7M Lines of Code
Dec 7, 2020
Preventing Concurrency Bugs from Causing Harm, Automatically
Oct 19, 2020
Irrationally Annoyed: The SIGPLAN Blog Post writing 30 Years of PL Research Out of Existence
Aug 8, 2020
Metaprogramming, Metaobject Protocols, Gradual Type Checks: Optimizing the "Unoptimizable" Using Old Ideas
Jul 7, 2020
Is This Noise, or Does This Mean Something? #benchmarking
Jun 26, 2020
An Introduction to Efficient and Safe Implementations of Dynamic Languages
All posts: Research