Matthias Zenger

Research & Publications

Multi-Paradigm Programming

Most of my work at EPFL was related to Scala, a multi-paradigm programming language with clear semantic foundations. Scala evolved out of the programming language Funnel. Funnel is based on the notion of Functional Nets, a uniform foundation for programming and program composition. A compiler for Funnel was written in cooperation with Michel Schinz.

An Overview of the Scala Programming Language
Martin Odersky, Philippe Altherr, Vincent Cremet, Burak Emir, Sebastian Maneth, Stephane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, Matthias Zenger.
Technical Report IC/2004/64, EPFL, Switzerland, July 2004.
[pdf]
A Nominal Theory of Objects with Dependent Types
Martin Odersky, Vincent Cremet, Christine Röckl, Matthias Zenger.
European Conference on Object-Oriented Programming, Darmstadt, Germany, July 2003. © Springer-Verlag (LNCS series). [pdf]
Workshop on Foundations of Object-Oriented Languages, New Orleans, USA, January 2003. [pdf]
Technical Report IC/2002/070, EPFL, September 2002. [pdf]
Colored Local Type Inference
Martin Odersky, Christoph Zenger, Matthias Zenger.
ACM Symposium on Principles of Programming Languages, London, UK, January 2001.
[pdf]
A Functional View of Join
Martin Odersky, Matthias Zenger, Gang Chen, Christoph Zenger.
Technical Report ACRC-99-016, University of South Australia, Adelaide, 1999.
[pdf]

Software Extensibility

At LAMP we implemented a Scala compiler. For the implementation of this compiler, we used some of the techniques developed in my work about software extensibility:

Scalable Component Abstractions
Martin Odersky, Matthias Zenger.
Conference on Object-Oriented Programming, Systems, Languages and Applications, San Diego, USA, October 2005. [pdf]
Technical Report IC/2004/109, EPFL, Switzerland, December 2004. [pdf]
Independently Extensible Solutions to the Expression Problem
Matthias Zenger, Martin Odersky.
Workshop on Foundations of Object-Oriented Languages, Long Beach, USA, January 2005. [pdf]
Technical Report IC/2004/33, EPFL, Switzerland, March 2004. [pdf]
Programming Language Abstractions for Extensible Software Components
Matthias Zenger.
PhD Thesis, No. 2930, EPFL, Switzerland, March 2004.
[pdf]
Towards a Taxonomy of Software Change
Jim Buckley, Tom Mens, Matthias Zenger, Awais Rashid, Günter Kniesel.
Journal of Software Maintenance and Evolution: Research and Practice (Special Issue on USE), 17(5), John Wiley & Sons, Ltd, September 2005.   
Keris: Evolving Software with Extensible Modules
Matthias Zenger.
Journal of Software Maintenance and Evolution: Research and Practice (Special Issue on USE), 17(5), John Wiley & Sons, Ltd, September 2005.   
Towards a Taxonomy of Software Evolution
Tom Mens, Jim Buckley, Matthias Zenger, Awais Rashid.
International Workshop on Unanticipated Software Evolution, Warsaw, Poland, April 2003.
[pdf]
Extensibility in the Large
Matthias Zenger.
First Doctoral Workshop on Global Computing, Lausanne, Switzerland, June 2002.
[pdf]
Evolving Software with Extensible Modules
Matthias Zenger.
International Workshop on Unanticipated Software Evolution, Málaga, Spain, June 2002.
[pdf]
Type-Safe Prototype-Based Component Evolution
Matthias Zenger.
European Conference on Object-Oriented Programming, Málaga, Spain, June 2002. © Springer-Verlag (LNCS series). [pdf]
Technical Report IC/2002/014, EPFL, April 2002. [pdf]
Extensible Algebraic Datatypes with Defaults
Matthias Zenger, Martin Odersky.
International Conference on Functional Programming, Firenze, Italy, September 2001.
[pdf]
Implementing Extensible Compilers
Matthias Zenger, Martin Odersky.
Workshop on Multiparadigm Programming with Object-Oriented Languages, Budapest, Hungary, June 2001.
[pdf]
Erweiterbare Übersetzer (in German)
Matthias Zenger.
Masters Thesis, University of Karlsruhe, August 1998.
[pdf]

One of the results of my work is an extensible Java compiler JaCo which is now used in a couple of projects at EPFL and at the School of Computer and Information Science of the University of South Australia.

Recently, my research led to the design and implementation of the Java-based programming language Keris. Keris adds a powerful module system to Java which explicitly supports software evolution on the programming language level.

Distributed Programming

Some years ago, I had been a member of the JavaParty group at the University of Karlsruhe. This group is working on an extension of Java that simplifies the development of distributed applications, by providing transparent, mobile remote objects. Here is a selection of documents about our work:

JavaParty: portables, paralleles und verteiltes Programmieren in Java (in German)
Michael Philippsen, Matthias Zenger, Matthias Jacob.
JavaDays, Frankfurt, Germany, November 1998.
[pdf]
JavaParty: Transparent Remote Objects in Java
Michael Philippsen, Matthias Zenger.
Concurrency: Practice and Experience, 9(11):1225-1242, November 1997.
[pdf]
Transparente Objektverteilung in Java (in German)
Matthias Zenger.
Student project report, Institut für Programmstrukturen und Datenorganisation, Universität Karlsruhe, February 1997.
[pdf]