Jun.-Prof. Dr. Jonathan Immanuel Brachthäuser

Head of the SE research group

Photo of Jonathan Brachthäuser

Jonathan Brachthäuser
Software Engineering
FB Informatik
Universität Tübingen
Sand 13
72076 Tübingen
Germany

Telephone
+49 - (0) 70 71 - 29 - 75491
E-Mail
jonathan.brachthaeuser(at)uni-tuebingen.de
Office
B215
Office hours
by appointment

Publications on Google Scholar Publications on DBLP

Publications

Other Publications

  • 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 Accepted for publication in Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2022.

  • Type-Level Programming with Match Types

    by Olivier Blanvillain, Jonathan Immanuel Brachthäuser, Maxime Kjaer, and Martin Odersky

    In Proc. ACM Program. Lang. 6(POPL). Association for Computing Machinery, 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.

  • A Typed Continuation-Passing Translation for Lexical Effect Handlers

    by Philipp Schuster, Jonathan Immanuel Brachthäuser, Marius Müller, and Klaus Ostermann

    In Accepted for publication in Proceedings of the International Conference on Programming Language Design and Implementation (PLDI), 2022.

  • What You See Is What You Get: Practical Effect Handlers in Capability-Passing Style

    by Jonathan Immanuel Brachthäuser

    In Ernst Denert Award for Software Engineering 2020. Springer International Publishing, 2022.

Other Publications

  • All About That Stack: A Unified Treatment of Regions and Control Effects

    by Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann

    Technical report. University of Tübingen, Germany, 2021.

  • Tracking Captured Variables in Types

    by Aleksander Boruch-Gruszecki, Jonathan Immanuel Brachthäuser, Edward Lee, Ondrej Lhoták, and Martin Odersky

    In CoRR abs/2105.11896, 2021.

  • Virtual ADTs for Portable Metaprogramming

    by Nicolas Stucki, Jonathan Immanuel Brachthäuser, and Martin Odersky

    In Proceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes, pages 36–44. Association for Computing Machinery, 2021.

  • Multi-Stage Programming with Generative and Analytical Macros

    by Nicolas Stucki, Jonathan Immanuel Brachthäuser, and Martin Odersky

    In Proceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, pages 110–122. Association for Computing Machinery, 2021.

  • Safer Exceptions for Scala

    by Martin Odersky, Aleksander Boruch-Gruszecki, Jonathan Immanuel Brachthäuser, Edward Lee, and Ondřej Lhoták

    In Proceedings of the 12th ACM SIGPLAN International Symposium on Scala, pages 1–11. Association for Computing Machinery, 2021.

  • Representing Monads with Capabilities

    by Jonathan Brachthäuser, Aleksander Boruch-Gruszecki, and Martin Odersky

    Technical report. Higher-Order Programming with Effects (HOPE), 2021.

Other Publications

  • Effekt: Capability-Passing Style for Type- and Effect-Safe, Extensible Effect Handlers in Scala

    by Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann

    In Journal of Functional Programming 30: , 2020.

  • Compiling Effect Handlers in Capability-Passing Style

    by Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann

    In Proceedings of the International Conference on Functional Programming (ICFP). ACM Press, 2020.

  • Effect Handlers, Evidently

    by Ningning Xie, Jonathan Immanuel Brachthäuser, Daniel Hillerström, Philipp Schuster, and Daan Leijen

    In Proceedings of the International Conference on Functional Programming (ICFP). ACM Press, 2020.

  • Effekt: Lightweight Effect Polymorphism for Handlers (Technical Report)

    by Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann

    Technical report. University of Tübingen, Germany, 2020.

  • Effects as Capabilities: Effect Handlers and Lightweight Effect Polymorphism

    by Jonathan Immanuel Brachthäuser, Philipp Schuster, and Klaus Ostermann

    In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2020.

  • Design and Implementation of Effect Handlers for Object-Oriented Programming Languages

    by Jonathan Immanuel Brachthäuser

    PhD thesis. University of Tübingen, Germany, 2020.

Other Publications

  • Programming with Implicit Values, Functions, and Control

    by Jonathan Immanuel Brachthäuser and Daan Leijen

    Technical report MSR-TR-2019-7. Microsoft Research, 2019.

  • Zero-cost Effect Handlers by Staging (Technical Report)

    by Philipp Schuster, Jonathan Immanuel Brachthäuser, and Klaus Ostermann

    Technical report. University of Tübingen, Germany, 2019.

Other Publications

Other Publications

  • Towards Naturalistic EDSLs using Algebraic Effects

    by Jonathan Immanuel Brachthäuser

    In Workshop for Domain Specific Languages, Design and Implementation (DSLDI), 2017.

  • Effekt: Extensible Algebraic Effects in Scala (Short Paper)

    by Jonathan Immanuel Brachthäuser and Philipp Schuster

    In Proceedings of the International Symposium on Scala. ACM Press, 2017.

Other Publications

  • Revisiting the Cake Pattern: Scaling "Scalable Component Abstractions"

    by Paolo G. Giarusso and Jonathan Immanuel Brachthäuser

    Technical report. Talk at Scala Symposium 2016, University of Tübingen, Germany, 2016.

  • Prioritizing Regression Tests for Desktop and Web-Applications Based on the Execution Frequency of Modified Code

    by Matthias Hirzel, Jonathan Immanuel Brachthäuser, and Herbert Klaeren

    In Proc. of the Intl. Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools. Association for Computing Machinery, 2016.

  • Parsing with First-Class Derivatives

    by Jonathan Brachthäuser, Tillmann Rendel, and Klaus Ostermann

    In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2016.

Other Publications

  • Modularization of Algorithms on Complex Data Structures: An Encoding of Typesafe Extensible Functional Objects

    by Jonathan Immanuel Brachthäuser

    Master thesis. University of Marburg, Germany, 2014.

  • From Object Algebras to Attribute Grammars

    by Tillmann Rendel, Jonathan Immanuel Brachthäuser, and Klaus Ostermann

    In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA), pages 377–395. ACM Press, 2014.

Curriculum Vitae

Since Nov 2021
Junior Professor

Software Engineering
University of Tübingen

Aug 2020 - Aug 2021
Postdoctoral Researcher

École Polytechnique Fédérale de Lausanne (EPFL), Schweiz
LAMP – Programming Methods Laboratory

Jun 2018 - Aug 2018
PhD Research Internship

Microsoft Research (MSR), Redmond, USA

2014 - 2020
PhD Computer Science

Programming Languages
University of Tübingen

2012 - 2014
MSc. Computer Science

Philipps-Universität, Marburg

2008 - 2012
BSc. Computer Science Media

Hochschule der Medien, Stuttgart

Recent Community Service

OOSPLA 23 (Hybridization Co-Chair), ECOOP 22 (AEC, extended PC), Scala 22 (PC), Hope 22 (PC), PEPM 22 (PC), PLMW @ ICFP 2021 (Mentor), TOPLAS 21 (Reviewer), PLMW @ ICFP 2020 (Mentor), JFP 20 (Reviewer), JFP 19 (Reviewer), Scala 18 (PC), JFP 18 (Reviewer), Scala 17 (Orga), Scala 18-21 (SC)

Open Thesis Topics

BSc / MSc

Spectrum-based fault localization (SBFL) for Haskell

Spectrum-based fault localization (SBFL) is a technique for automatically locating the probable source code location of bugs in software.

Read more ...
BSc / MSc

A Document Processor for Scientific Articles

LaTeX is one of the predominant document preparation systems for scientific articles. While very expressive, LaTeX documents tend to be verbose, fragile, and difficult to author.

Read more ...
MSc

A Language Server Protocol Extension for Effects and Handlers

Static type systems help to avoid programming errors by indicating to the programmer at compile time that a value potentially has a wrong type. This way, unsupported operations (such as dividing two strings or calling a method on a number) are ruled out before the program is executed.

Read more ...

Assigned Thesis Topics

Franciszek Piszcz (MSc)

Abstract-Interpretation-Based Language Server for Python

Most IDEs for Python development follow traditional code analysis approaches that are known to work well for statically-typed languages such as Java or C++. A lot of modern Python code is untyped, and these conservative tools tend to assign the “Any” type for variables that do not have explicit type annotations. However, programmers are usually able to deduce types (and often concrete values) by looking at surrounding code and jumping through function definitions and call sites.

Read more ...
David Voigt (BSc)

Resource Finalization for Effect Handlers

Handling resources, such as files or network sockets, in a language with control (such as exceptions) safely can become difficult. We need to make sure that all memory is eventually freed and all file handles and sockets are closed; even in the case of an exception.

Read more ...
Lukas Stetter (BSc)

Interaktive Lehrbücher

Viele der Lehrmaterialien welche wir in der Lehre verwenden bestehen aus nicht interaktiven Skripten und Foliensätzen. Aber viele Inhalte der Informatik eignen sich besonders gut für eine interaktive Präsentation. Durch eine interaktive Präsentation können auch sehr abstrakte Inhalte greifbar und verständlich gemacht werden. So wird zum Beispiel häufig auf Animationen und interaktive Graphiken zurückgegriffen, um die Ausführung von Algorithmen zu veranschaulichen.

Read more ...
Pavel Karasik (MSc)

Improving Error Messages with Algebraic Subtyping

Good type errors are an important tool to improve programmer productivity. Ideally, they can help to quickly localize and fix problems and help programmers to not only better understand the error, but also the underlying program.

Read more ...

Finished Thesis Topics

Roman Schulte (MSc)

Second-class Modules for the Effekt Programming Language

Effekt is a novel programming language featuring new ways to modularize software and structure complex control flow. In particular, it includes lexical effect handlers as well as an advanced type- and effect system. However, the language is yet lacking a full module system.

Read more ...
Tim Neumann (BSc)

IDE Support for Lexical Effects and Handlers

Static type systems help to avoid programming errors by indicating to the programmer at compile time that a value potentially has a wrong type. This way, unsupported operations (such as dividing two strings or calling a method on a number) are ruled out before the program is executed.

Read more ...

News

Paper accepted for publication at ESOP 2022

Our paper “Region-based Resource Management in Continuation-Passing Style” (Philipp Schuster, Jonathan Brachthäuser
Head of the SE research group
Jonathan Immanuel Brachthäuser
, and Klaus Ostermann) has been accepted for publication at the 31st European Symposium on Programming (ESOP 2022).

Read more ...

Paper accepted for publication at POPL 2022

Our paper “Type-Level Programming with Match Types” (Olivier Blanvillain, Jonathan Brachthäuser
Head of the SE research group
Jonathan Immanuel Brachthäuser
, Maxime Kjaer, and Martin Odersky) has been accepted for publication at the ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2022).

Read more ...

Best Paper Award – GPCE 2021

Our paper Multi-Stage Programming with Generative and Analytical Macros, by Nicolas Stucki, Jonathan Brachthäuser
Head of the SE research group
Jonathan Immanuel Brachthäuser
, and Martin Odersky was honored with the Best Paper Award at the International Conference on Generative Programming: Concepts & Experiences (GPCE 2021)

Read more ...