Programming Languages

Philipp Schuster, M.Sc.

Photo of Philipp Schuster

Philipp Schuster
Universität Tübingen
WSI - Programmiersprachen
Sand 13
72076 Tübingen
Germany

Telephone
+49 - (0) 70 71 - 29 - 70 516
Telefax
+49 - (0) 70 71 - 29 - 50 82
E-Mail
philipp.schuster(at)uni-tuebingen.de
Office
B211
Office hours
by appointment

Research Projects

Algebraic Effect Handlers

Publications

Back to Direct Style: Typed and Tight

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

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2023.

Learn More

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 Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2023.

Learn More

A Typed Continuation-Passing Translation for Lexical Effect Handlers

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

In Proc. Conf. Programming Language Design and Implementation (PLDI), 2022.

Learn More

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.

Learn More

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.

Learn More

Compiling Effect Handlers in Capability-Passing Style

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

In Proc. Int’l Conf. Functional Programming (ICFP). ACM Press, 2020.

Learn More

Effect Handlers, Evidently

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

In Proc. Int’l Conf. Functional Programming (ICFP). ACM Press, 2020.

Learn More

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.

Learn More

Effects as Capabilities: Effect Handlers and Lightweight Effect Polymorphism

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

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2020.

Learn More

Incremental λ-Calculus in Cache-Transfer Style, Static Memoization by Program Transformation

by Paolo G. Giarusso, Yann Régis-Gianas, and Philipp Schuster

In Proc. Europ. Symposium on Programming (ESOP). Springer-Verlag, 2019.

Learn More

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.

Learn More

Effect Handlers for the Masses

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

In Proc. Int’l Conf. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM Press, 2018.

Learn More

Typing, Representing, and Abstracting Control: Functional Pearl

by Philipp Schuster and Jonathan Brachthäuser

In Proceedings of the International Workshop on Type-Driven Development. ACM Press, 2018.

Learn More

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.

Learn More

Open Thesis Topics

An Online Repository for Haskell Code Snippets

The idea of fragment-based code distribution is to distribute code in units of individual functions instead of packages as is mostly done today. We have a prototype implementation of a fragment-based code package manager fragnix [0] for Haskell. In a talk at Haskell Implementors Workshop 2017 we gave a demo of how functions could be stored online and retrieved individually [1].

Read more ...

Declarative Programming of Fischertechnik Robots

We are collaborating with Fischertechnik GmbH to develop novel ways to program their robots. Currently, the robots are programmed either with a high-level but rather limited graphical flow chart language, or using a low-level imperative API. The goal of this thesis is to design and implement a library for high-level modular but general functional programming for the Fischertechnik ROBO TXT controller. This library should be based either on the ``How to Design Worlds” approach by Felleisen et al or in the style of functional reactive programming.

Read more ...

Finished Thesis Topics

Second-class modules for the Effekt programming language

Effekt is a research programming language that features a lightweight implementation of effects and handlers. As part of this thesis, the language was extended with second-class modules and related functionalities. These new features allow programmers to define modules and abstract them with interfaces. Also, the module system aims to strengthen the interplay between effects and modules. Both concepts share common characteristics, paving the way for potential future unification. This work examines those possibilities and provides insights into the relationship of modules and effects.

Read more ...

Making Fragment Based Code Distribution Practical

Package managers for programming languages are becoming more and more prevalent with only few languages not having one. The packages that one can add to a project with these tools are stored in an online repository, where users can share their work and make it available to other developers. This has led to huge increase in productivity. Fragnix is a prototype that is built around the idea of not sharing huge packages, that can contain several module files but rather the smallest possible unit of distribution: single functions. This thesis explains what was necessary to turn the Fragnix prototype from a tool, that could extract single definitions from Haskell modules into its own files, into a package manager, that transmits these files over the internet to integrate them in a user’s project.

Read more ...

Build Systems à la Carte with Effect Handlers

Algebraic effect handlers have been gaining attention in programming language re- search. They offer a new, abstract way of control flow. In this thesis we do a case study on reproducing a Haskell framework for build systems in Effekt, a new programming language with support for algebraic effect handlers.

Read more ...

Entwicklung eines Frontends für eine Datenbank an Haskell-Code-Snippets

Diese Bachelorarbeit befasst sich mit der Entwicklung eines Frontends für eine Datenbank, die Codeausschnitte der Programmiersprache Haskell beinhaltet. Das Frontend soll hier eine Webseite sein, die ein Nutzer im ersten Schritt auf seinem System installieren kann und die in einem weiteren Schritt auch öffentlich zugänglich gemacht werden kann.

Read more ...

Fragnix-Gui Creating a declaration editor for an alternative software sharing platform for Haskell

Building upon the existing Fragnix tool [fragnix], which slices a Haskell program into its declarations and enriches them with metadata, this thesis envisions a software sharing ecosystem based on sharing single declaration slices. Such an ecosystem could offer improvements in terms of performance, dependency tracking and maintenance and help with the prevention of effort duplication. A declaration editor is chosen as the next step towards realizing the tools for this slice sharing ecosystem. Using Haskell in the back-end and Elm in the front-end, prototypes for navigating code in form of slices are developed. A layout based on code-folding and in dentation proves to be most promising and is used for implementing the back-end foundations for editing and the ability to edit the text of declarations. The implementation of the remaining editing features is left for future work.

Read more ...

A Comparison of Probabilistic Programming Languages

The goal of this bachelor thesis was to investigate the differences between probabilistic programming languages. Therefore a case study was performed. We represented a hidden markov model and implemented inference on it with two probabilistic programming languages, WebPPL and Pyro. WebPPL following a functional approach as well as Pyro that sticks to an imperative programming paradigm succeeded in representing the hidden Markov model. Concerning the inference on the hidden markov model critical spots such as dealing with state depending models were revealed. We came to the conclusion that there exists a balancing problem between a generalization and a highly individual implementation of inference algorithms for probabilistic program- ming languages. The bachelor thesis is interesting for Bachelor or Master students of computer science and related courses of studies. It is also in- teresting for anybody dealing with probabilistic models and inference on them.

Read more ...

Portierung eines Visualisierungs-Frameworks von C# nach Python

Um die kundenorientierte Reichweite eines Unternehmens zu vergrößern, welches Softwareschnittstellen anbietet, ist es notwendig, diese Schnittstellen für verschie- dene Programmiersprachen bereitzustellen. Um dabei den Aufwand gering zu halten, soll großteils nur in einer Sprache entwickelt werden und die Software soll anschließend automatisch in andere Sprachen übersetzt werden. Die Firma yWorks entwickelt dafür das Übersetzungsprogramm Blunter. Unter Verwendung des Blunters soll das von yWorks nach dem Model-View-Controller (MVC)-Pattern programmierte Visualisierungs-Framework yFiles nach Python portiert werden. Für die graphische Darstellung in Python wird ein externes Graphical User In- terface (GUI)-Framework verwendet, welches bereits beim Übersetzungsprozess automatisch in die Python-Portierung integriert wird.

Read more ...

Performance-Analyse und -Optimierung der Ausgabe eines C#-zu-Python-Quellcodeübersetzers

Im Zuge des Tübinger Software-Projekts (TSPs) 2018/19 wurde in Zusammenarbeit mit der yWorks GmbH (yWorks) die neue Version 3.0 des Quellcodeübersetzers Blunter entwickelt. Dadurch ist das Programm nun in der Lage, ein gegebenes C#-Projekt in ein Python-Projekt zu übersetzen.

Read more ...

Strong Reduction in Lambda Calculus and its Use in Program Optimization

Program optimization by compilers is important - especially for functional programming languages. Yet at least parts of it remain a ”black art”, as Simon Peyton Jones describes the inlining technique in [0], full of compromises and heuristics. The problem, known as code bloat, is that optimization techniques might actually make performance worse by inlining too much, blowing up the code size.

Read more ...

Testen von Integrierten Entwicklungsumgebungen

In dieser Bachelorarbeit geht es um das automatische Testen einer eigens programmierten integrierten Entwicklungsumgebung. Die Applikation wird in Qt/C++ programmiert und mittels des Testframeworks Squish getestet. Dabei wird zuerst im Allgemeinen auf Qt und Squish eingegangen. Darauf folgen Vorgehensweise und Entwicklungswerkzeuge. Im Anschluss wird die Applikation, welche Hypertext Phoenix genannt wird, beschrieben. Das letzte und längste Kapitel widmet sich komplett dem Testen. Hier wird auf allgemeine Themen wie Tests von Hypertext Phoenix mit Beispielen eingegangen. Abschluss dieses Kapitels bildet der Nutzen von Tests.

Read more ...

News

Paper accepted for publication at OOPSLA 2020

Our paper “Effects as Capabilities: Effect Handlers and Lightweight Effect Polymorphism” (Jonathan Brachthäuser
Alumni
Jonathan Immanuel Brachthäuser
, Philipp Schuster
Alumni
Philipp Schuster
and Klaus Ostermann
Head
Klaus Ostermann
) has been accepted for publication at the International Conference on Object Oriented Programming Systems Languages & Applications (OOPSLA, 2020).

Read more ...

Presentation at ICFP 2020

Philipp Schuster
Alumni
Philipp Schuster
presents the paper Compiling Effect Handlers in Capability-Passing Style at the International Conference on Functional Programming (ICFP) 2020 virtual event.

Read more ...

Paper accepted for publication in the Journal of Functional Programming

Our paper “Effekt: Capability-Passing Style for Type- and Effect-Safe, Extensible Effect Handlers in Scala” (Jonathan Brachthäuser
Alumni
Jonathan Immanuel Brachthäuser
, Philipp Schuster
Alumni
Philipp Schuster
and Klaus Ostermann
Head
Klaus Ostermann
) has been accepted for been accepted for publication in the Journal of Functional Programming (JFP).

Read more ...

Shonan Meeting on Programming and Reasoning with Algebraic Effects and Effect Handlers

Philipp Schuster
Alumni
Philipp Schuster
attends the Shonan meeting on “Programming and Reasoning with Algebraic Effects and Effect Handlers” from March 25 to 29, 2019.

Read more ...

Presentation at ESOP 2019

Former member Paolo Giarusso presents the paper Incremental λ-Calculus in Cache-Transfer Style at the European Symposium on Programming (ESOP) 2019 in Prague, Czech Rebuplic.

Read more ...

Presentation at OOPSLA 2018

Jonathan Brachthäuser
Alumni
Jonathan Immanuel Brachthäuser
presents the paper Effect Handlers for the Masses at the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) in Boston, MA, USA.

Read more ...

Presentation at Type-Driven Development 2018

Philipp Schuster
Alumni
Philipp Schuster
presents the functional pearl Typing, Representing, and Abstracting Control at Type-Driven Development 2018.

Read more ...

Presentation at Haskell Implementors Workshop

Philipp Schuster
Alumni
Philipp Schuster
presents An Experiment in Fragment-Based Code Distribution at the Haskell Implementors Workshop.

Read more ...

Workshop at HaL workshop

Philipp Schuster
Alumni
Philipp Schuster
presents Ten example uses of monads at Haskell in Leipzig workshop series.

Read more ...