Research
My publications are listed on the publications page.
Current Projects
Royal Society Industry Fellowship: FastStart: Fast Single Truth Language Runtimes (2021–2024, funded by The Royal Society)
Turns out a lot of programs spent a lot of time in interpreters,
instead of compiled code. In this project, we explore how we can
reduce the semantic duplication in language implementations,
while at the same time, improving interpreter performance.
As Industry Fellowship, this project is in collaboration with Shopify
Project CaMELot: Catching and Mitigating Event-Loop Concurrency Issues (2021–2024, 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.
- 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.
Current high-lights:
- SOM++
SOM++ used by IBM to showcase Project OMR's GC and JIT compiler
- TruffleSOM
SOM implemented based on Oracle Lab's Truffle and Graal platform.
- PySOM
SOM implemented with RPython, similar to TruffleSOM, showcasing the power of self-optimizing interpreters.
Previous Projects
- 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
- 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).
- Humphrey Burchell, since 2022
- Octave Larose, since 2021
- Sophie Kaleba, since 2019
- Javier Pimás, since 2016
- Dominik Aumayr, 2017-2021
- Carmen Torres López, 2016-2021
- 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
Academic Services
Organization
- Conference Program Committee Chair:
DLS'23
MPLR'20,
DLS'19,
and <Programming>'19
- Steering Committees:
MPLR (since 2019),
DLS (since 2019),
ICOOOLPS (since 2019),
<Programming> (since 2019),
VMIL (since 2018),
MoreVMs (since 2017)
- Workshop Organizer:
MoreVMs 2017–2019,
VMIL'18,
Meta 2016–2018,
ICOOOLPS'16,
Reflect'16,
SCRIPT'13
- PLDI Workshops & Tutorials Co-Chair 2020, 2021
- Workshops & Tutorials Co-Chair for <Programming> 2018, 2019
- Web Chair for ECOOP'19
Reviewing
- Program Committee Member of Conferences:
<Programming>'24,
SLE'23,
ICPP'23,
OOPSLA'22,
SLE'22,
ESOP'22,
ISMM'21,
ICPP'21,
<Programming>'19,
Onward!'18,
GPCE'18,
DLS'18,
ICPP'18,
ICPP'17, VEE'17,
DLS'14
- Member of the external review committee of OOPSLA'20
- Program Committee Member of other events:
DEBT'23,
Erlang'22,
CoDoCo'21,
AGERE'19,
PLACES'19,
COP'18,
PX/18, PX/19,
SPLASH'17 Workshops, COP'17, PASS'17, OOPSLA AEC'17, VMM'17, ICOOOLPS'17,
SPLASH'16 Workshops,
VMM'16, CROW'16,
AGERE'15, ECOOP AEC'15,
ICOOOLPS'14,
RACES'12,
MISS.12,
MISS.11,
VMIL'09
- 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 Computational Science
IEEE Access
Journal of Systems and Software
Journal of Science of Computer Programming
Journal of Logical and Algebraic Methods in Programming
Journal of Parallel Computing
- Grant Reviewing:
DFG, German Research Foundation
EPSRC, Engineering and Physical Sciences Research Council
NSERC, Natural Sciences and Engineering Research Council of Canada
NWO, The Dutch Research Council
Latest Research-Related Posts
-
Nov 17, 2023
The Changing “Guarantees” Given by Python's Global Interpreter Lock
-
Oct 16, 2023
Which Interpreters are Faster, AST or Bytecode?
-
Sep 20, 2023
Don't Blindly Trust Your Java Profiler!
-
Sep 11, 2023
An Introduction to Interpreters and JIT Compilation
-
Jun 6, 2023
Squeezing a Little More Performance Out of Bytecode Interpreters
-
Nov 8, 2022
How Effective are Classic Lookup Optimizations for Rails Apps?
-
Oct 30, 2022
Reducing Memory Footprint by Minimizing Hidden Class Graphs
-
Oct 10, 2022
The Cost of Safety in Java
-
Oct 5, 2022
Effortless Language Servers
-
Oct 17, 2021
Actors! And now?
All posts: Research