The utility of objects derives to a large degree form the fact that objects are natural modules, that is, building blocks from which larger modules are defined. Static type systems are essential for fine grained control what information is exposed in a module, and, conversely, what one is free to change inside a module. A good module or object system should follow three principles:

Everything can be nested in a module.

Everything can be parameterized with a module.

Module types are interfaces, which can be abstracted.

In this talk I present DOT, a particularly simple calculus that can express systems following these principles. DOT has been developed as the foundation of the next version of Scala. I will also report on dotty, a new Scala compiler that implements the constructs of DOT in its core data structures and that synthesizes object oriented and functional programming concepts in several interesting new patterns.

Bio

Martin Odersky is a professor at EPFL in Lausanne, Switzerland. He has been working on programming languages for most of his career. He first studied structured and object-oriented programming as a PhD student of Niklaus Wirth, then fell in love with functional programming while working as a post doc at IBM and Yale. When Java came out, he started to add functional programming constructs to the new platform. This led to Pizza and GJ and eventually to Java 5 with generics. During that time he also developed javac, the current reference compiler for Java.

Over the last 10 years, Martin worked on unifying object-oriented and functional programming in the Scala language. Scala quickly escaped from the research lab and became a popular open source tool and industrial language. He now oversees development of Scala as head of the programming group at EPFL and as academic director of the Scala center.

SPLASH 2016 Keynote: From DOT to Dotty -- Foundations and Types for Objects As Modules

Display in different time zone

The program is currently displayed in (GMT+02:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna.