Research
My publications are listed on the
publications page.
Current Projects
-
Automatic Superinstructions for Bytecode Interpreters
(2024, funded by Oracle Labs)
Metacompilation systems currently have high interpreter overheads. In this
project, we will explore ways to reduce the overhead of bytecode
interpretation.
-
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.
-
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 highlights:
-
SOM++
SOM++ used by IBM to showcase
Project OMR's GC and JIT compiler
-
TruffleSOM
SOM implemented based on Oracle's GraalVM.
-
PySOM
SOM implemented with RPython, similar to TruffleSOM, showcasing the
power of self-optimizing interpreters.
Previous Projects
-
Safely Combining Concurrency Abstractions
(2012–2024)
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
-
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
-
Joel Jakubovic, 2019–2023
-
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:
SPLASH (since
2023, as observer),
MPLR (since 2019),
DLS (since 2019),
ICOOOLPS (since
2019),
<Programming> (since
2019), VMIL (since
2018),
MoreVMs (since 2017)
-
Workshop Organizer:
MoreVMs
2017–2019, 2023, 2024,
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:
ISMM'24,
<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:
Journal of Object Technology (JOT),
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:
EPSRC, Invited Member of Peer Review College (since 2024)
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
-
Sep 17, 2024
Instrumentation-based Profiling on JVMs is Broken!
-
Jun 18, 2024
5 Reasons Why Box Plots are the Better Default Choice for Visualizing Performance
-
Feb 23, 2024
Why Are My Bytecode Interpreters Slow? Hunting Truffles with VTune
-
Feb 13, 2024
Rank 10 Language Implementations
-
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?
All posts: Research