Martin Odersky

Nationality: Swiss

EPFL IC IINFCOM LAMP1
INR 319 (Bâtiment INR)
Station 14
1015 Lausanne

Expertise

Programming languages, Programming methods, Compiler Construction, Foundations of software, Object-oriented programming, Functional programming, Key-words : Scala, Java
Martin Odersky heads the programming research group at EPFL. His research interests cover fundamental as well as applied aspects of programming languages. They include semantics, type systems, programming language design, and compiler construction. The main focus if his work lies in the integration of object-oriented and functional programming. His research thesis is that the two paradigms are just two sides of the same coin and should be unified as much as possible. To prove this he has experimented a number of language designs, from Pizza to GJ to Functional Nets. He has also influenced the development of Java as a co-designer of Java generics and as the original author of the current javac reference compiler. His current work concentrates on the Scala programming language, which unifies FP and OOP, while staying completely interoperable with Java and .NET. Martin Odersky got his doctorate from ETHZ, in 1989. He held research positions at the IBM T.J. Watson Research Center from 1989 and at Yale University from 1991. He was then a professor at the University of Karlsruhe from 1993 and at the University of South Australia from 1997. He joined EPFL as full professor in 1999. He is associate editor of the Journal of Functional Programming and member of IFIP WG 2.8. He was conference chair for ICFP 2000, and program chair for ECOOP 2004 as well as ETAPS/CC 2007.

<b>CURRENT WORK</B>

Scala is a modern multi-paradigm 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.
Programming Language Abstractions for Mobile Code.
Composing services, using staging and data binding.
Reproducible Concurrent Programs through Software Transactions.
Pluggable Type Systems. Martin Odersky's research is sponsored by the Swiss National Science Foundation, the European Commission, and the Hasler Foundation.

<b>OTHER PUBLICATION

Infoscience

Scalable Component Abstractions

M. OderskyM. Zenger

2005. OOPSLA 2005, San Diego, October 2005. p. 41–57. DOI : 10.1145/1094811.1094815.

A Nominal Theory of Objects with Dependent Types

M. OderskyV. CremetC. RöcklM. Zenger

2002

Functional Nets

M. Odersky

2000. European Symposium on Programming 2000, Programming Languages and Systems 9th European Symposium on Programming, ESOP 2000 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2000, Berlin, Germany, March 25 – April 2, 2000. p. 1-25. DOI : 10.1007/3-540-46425-5_1.

Making the future safe for the past: Adding Genericity to the Java Programming Language

G. BrachaM. OderskyD. StoutamireP. Wadler

1998. OOPSLA 1998.

Pizza into Java: Translating theory into practice

M. OderskyP. Wadler

1997. 24th ACM Symposium on Principles of Programming Languages, Paris, France, January 1997. p. 146–159. DOI : 10.1145/263699.263715.

Teaching & PhD

PhD Students

Matthieu Bovel, Yaoyu Zhao, Anna Herlihy, Nguyên Cao Pham, Yichen Xu

Past EPFL PhD Students

Julie Vachon, Matthias Zenger, Michel Schinz, Philippe Altherr, Vincent Cremet, Burak Emir, Stéphane Micheloud, Iulian Dragos, Philipp Haller, Gilles Dubochet, Tiark Rompf, Ingo Maier, Lukas Rytz, Aleksandar Prokopec, Heather Miller, Vlad Ureche, Nada Amin, Manohar Jonnalagedda, Hubert Plociniczak, Vojin Jovanovic, Sandro Stucki, Eugene Burmako, Dmytro Petrashko, Sébastien Doeraene, Denys Shabalin, Fengyun Liu, Olivier Blanvillain, Guillaume Martres, Nicolas Alexander Stucki, Aleksander Slawomir Boruch-Gruszecki

Past EPFL PhD Students as codirector

Sébastien Briais

Courses

Software construction

CS-214

Learn how to design and implement reliable, maintainable, and efficient software using a mix of programming skills (declarative style, higher-order functions, inductive types, parallelism) and fundamental software construction concepts (reusability, abstraction, encapsulation, composition, proofs)