Martin Odersky
Full Professor
martin.odersky@epfl.ch +41 21 693 68 63 http://lampwww.epfl.ch/~odersky/
Citizenship: German
Birth date: 05.09.1958
EPFL IC IINFCOM LAMP1
INR 319 (Bâtiment INR)
Station 14
1015 Lausanne
+41 21 693 68 63
+41 21 693 52 02
Office:
INR 319
EPFL
>
IC
>
IINFCOM
>
LAMP1
Web site: Web site: https://lampwww.epfl.ch
+41 21 693 68 63
EPFL
>
IC
>
IC-SIN
>
SIN-ENS
Web site: Web site: https://sin.epfl.ch
+41 21 693 68 63
EPFL
>
IC
>
IC-SSC
>
SSC-ENS
Web site: Web site: https://ssc.epfl.ch
Fields of expertise
Biography
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.OTHER PUBLICATION
Conference papers | Technical reports | Journal papers |
CURRENT WORK
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.
Publications
Infoscience publications
Infoscience
Scalable Component Abstractions
2005. OOPSLA 2005, San Diego, October 2005. p. 41–57. DOI : 10.1145/1094811.1094815.A Nominal Theory of Objects with Dependent Types
2002Functional Nets
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
1998. OOPSLA 1998.Pizza into Java: Translating theory into practice
1997. 24th ACM Symposium on Principles of Programming Languages, Paris, France, January 1997. p. 146–159. DOI : 10.1145/263699.263715.Teaching & PhD
Teaching
Computer Science
Communication Systems
PhD Students
Bovel Matthieu Alexandre, Herlihy Anna Patricia, Pham Nguyên Cao, Xu Yichen, Zhao Yaoyu,Past EPFL PhD Students
Amin Nada , Blanvillain Olivier Eric Paul , Boruch-Gruszecki Aleksander Slawomir , Burmako Eugene , Doeraene Sébastien Jean R , Dragos Iulian , Dubochet Gilles , Emir Burak , Haller Philipp , Jonnalagedda Manohar , Jovanovic Vojin , Klug Heather Christine , Liu Fengyun , Maier Ingo , Martres Guillaume André Fradji , Petrashko Dmytro , Plociniczak Hubert , Prokopec Aleksandar , Rompf Tiark , Rytz Lukas , Shabalin Denys , Stucki Nicolas Alexander , Stucki Sandro , Ureche Vlad ,Courses
Software construction
- Functional programming paradigm
- Recursion and tail-recursion
- Evaluation strategies, lazy evaluation, substitution model
- Modularity, data abstraction, representation independence
- Subtyping, inheritance, type classes
- Polymorphism, variance
- Structural induction
- Stateless parallelism, map-