Programming Languages


Current Research Projects

Computational Thinking

This is the homepage of the “Computational Thinking” project. This notion, as established by S. Papert and J. Wing, describes the ability to solve problems by partitioning, modeling, abstraction and generalization. “Computational Thinking” focuses on a conceptual understanding of human thinking in the sense of information processing. Among other research in the general area of “Computational Thinking”, we will work on the realization of the school project described below.

More about this project


The goal of this project is to define a simple but expressive language with symmetric support for programming with data types and programming with codata types.

More about this project

Past Research Projects

Algebra Composition

This projects investigates how to compose complex tree traversals from smaller components, encoded as algebras.

More about this project

DSL Design

Can the insights of semanticists into the structure and elegant description of languages be developed into a theory of language design that is accessible and relevant to programmers/language designers?

More about this project


The focus of this project is to study how to integrate the programming abstraction of effect handlers into general purpose programming languages. We investigate the integration with object-oriented programming and and explore the interaction with other modularity features, novel approaches to guarantee effect safety with the goal to make them more approachable by working programmers, as well as various implementation techniques and their impact on performance.

More about this project

First-class functors

This is the homepage of the first-class functors project. Our goal is to support as many datatype-related functors as first-class objects as possible, as conveniently as possible. So far we managed to practically support regular functors and demonstrate type-soundness in the presence of higher-kinded functors.

More about this project

Incremental λ-Calculus

The goal of the Incremental λ-Calculus project is to extend database technology for low-overhead incremental computation, based on finite differencing, and apply it to higher-order languages.

More about this project
Other previous research projects include: