Efficient Compilation of Control Effects (ECCE)
The history of programming language design and implementation is to a significant degree the history of control structures. The last decade has seen a new proliferation of advanced control structures, such as async/await, generators, coroutines, and fibers. These new control structures promise improved program structure, including the avoidance of “callback hell”, and generally a higher level of abstraction.
However, the way such control structures are implemented today is highly unsatisfactory. They are often hard-coded into a language, meaning that they are not user-definable; they are not composable, meaning that programs using different abstractions cannot be combined in one project; or implementations for one control abstraction cannot be reused to implement similar control abstractions.
To resolve these limitations, we embrace effect handlers as a high-level control abstraction. Backed by a strong theoretical foundation and a static type-and-effect system, effect handlers encourage a modular definition of control abstractions as user-definable libraries and naturally allow users to compose these libraries in one program. As of today, the abstraction of effect handlers comes with a cost in performance. The goal of the ECCE project (Efficient Compilation of Control Effects) is to remove these costs and provide control-flow abstraction without regret.
Specifically, we aim to establish a research programme to achieve novel compile-time and just-in-time optimizations for effect handlers, accompanied by both a theoretical framework to reason about correctness and costs and implementations for realistic languages. Efficient effect handlers will enable programmers to develop many general-purpose and domain-specific control-flow constructs without sacrificing performance.
Results
Tracing Just-in-time Compilation for Effects and Handlers
by Marcial Gaißert, CF Bolz-Tereick, and Jonathan Brachthäuser
In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2025.
Multiple Resumptions and Local Mutable State, Directly
by Serkan Muhcu, Philipp Schuster, Michel Steuwer, and Jonathan Brachthäuser
In Proceedings of the International Conference on Functional Programming (ICFP), 2025.
The Simple Essence of Monomorphization
by Matthew Lutze, Philipp Schuster, and Jonathan Immanuel Brachthäuser
In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2025.
Compiling Classical Sequent Calculus to Stock Hardware: The Duality of Compilation
by Philipp Schuster, Marius Müller, Klaus Ostermann, and Jonathan Immanuel Brachthäuser
In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2025.
With or Without You: Programming with Effect Exclusion
by Matthew Lutze, Magnus Madsen, Jonathan Immanuel Brachthäuser, and Philipp Schuster
In Proceedings of the International Conference on Functional Programming (ICFP). ACM Press, 2023.
From Capabilities to Regions: Enabling Efficient Compilation of Lexical Effect Handlers
by Marius Müller, Philipp Schuster, Jonathan Lindegaard Starup, Klaus Ostermann, and Jonathan Immanuel Brachthäuser
In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2023.
Back to Direct Style: Typed and Tight
by Marius Müller, Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann
In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2023.
A Typed Continuation-Passing Translation for Lexical Effect Handlers
by Philipp Schuster, Jonathan Immanuel Brachthäuser, Marius Müller, and Klaus Ostermann
In Proceedings of the International Conference on Programming Language Design and Implementation (PLDI), 2022.
Effects, Capabilities, and Boxes: From Scope-based Reasoning to Type-based Reasoning and Back
by Jonathan Immanuel Brachthäuser, Philipp Schuster, Edward Lee, and Aleksander Boruch-Gruszecki
In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2022.
Region-based Resource Management and Lexical Exception Handlers in Continuation-Passing Style
by Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann
In European Symposium on Programming (ESOP 2022), 2022.