Research
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 projectUroboro
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 projectPast Research Projects
Algebra Composition
This projects investigates how to compose complex tree traversals from smaller components, encoded as algebras.
More about this projectDSL 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 projectEffects
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 projectFirst-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 projectIncremental λ-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