Programming Languages and Software Technology

Research

Research Interests

  • Design and Implementation of Programming Languages
  • Type Systems
  • Effect Systems
  • Types and Modules
  • Software Development Tools
  • Program Analysis and Transformation
  • Software Product Lines
  • Preprocessors
  • Software Architecture und Patterns
  • Aspect-Oriented Programming
  • Object-Oriented Programming
  • Feature-Oriented Programming
List of Publications

Current Research Projects

Algebra Composition

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

More about this project

Algebraic Effect Handlers

The focus of this project is to integrate the programming abstraction of effect handlers into existing object oriented programming languages and explore the interaction with other modularity features. We also investigate various implementation techniques and their impact on performance.

More about this project

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

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

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

Uroboro

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

Previous research projects include: