My academic research contributions are almost exclusively in the area of programming languages and programming abstractions. My work focused on the development of reusable and extensible software components. Designing such components with today's software design best practices and implementing them with mainstream programming languages is hard, error-prone and does not scale well.
A huge step forward into the right direction is the programming language Scala. Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. Most of my PhD work at EPFL was related to the early design and implementation efforts of Scala and related research languages and compilers like JaCo, Keris, and Pizza.
A huge step forward into the right direction is the programming language Scala. Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages. Most of my PhD work at EPFL was related to the early design and implementation efforts of Scala and related research languages and compilers like JaCo, Keris, and Pizza.
- An Overview of the Scala Programming Language
- Scalable Component Abstractions
- Independently Extensible Solutions to the Expression Problem
- Keris: Evolving Software with Extensible Modules
- Towards a Taxonomy of Software Change
- Programming Language Abstractions for Extensible Software Components
- Towards a Taxonomy of Software Evolution
- A Nominal Theory of Objects with Dependent Types
- Extensibility in the Large
- Type-Safe Prototype-Based Component Evolution
- Evolving Software with Extensible Modules
- Extensible Algebraic Datatypes with Defaults
- Implementing Extensible Compilers
- Colored Local Type Inference
- A Functional View of Join
- JavaParty: portables, paralleles und verteiltes Programmieren in Java
- Erweiterbare Übersetzer
- JavaParty: Transparent Remote Objects in Java
- Transparente Objektverteilung in Java