MPI-INF Logo
Campus Event Calendar

Event Entry

What and Who

Expanding and Exploiting the Expressive Power of Modules

Derek Dreyer
Toyota Technological Institute at Chicago
SWS Colloquium


Derek Dreyer received a B.A. in Mathematics and Computer Science from
New York University in 1996, and a Ph.D. in Computer Science from
Carnegie Mellon University in 2005. Since January 2005, he has held
the position of Research Assistant Professor at the Toyota
Technological Institute at Chicago. His research interests include
the design, implementation, and type-theoretic foundations of HOT
(Higher-Order, Typed) programming languages, such as ML and Haskell,
with particular focus on type systems for modular programming.
AG 1, AG 2, AG 3, AG 4, AG 5, SWS  
Expert Audience
English

Date, Time and Location

Thursday, 19 April 2007
15:00
-- Not specified --
E1 4
019
Saarbrücken

Abstract

Modularity is widely viewed as a central concept in the design of
robust software.  Programming languages vary widely, however, in the
kinds of modularity mechanisms they support, leading to the mistaken
impression that there are fundamental tradeoffs between different
paradigms of modular programming.  The high-level goal of my research
is to design languages that overcome these tradeoffs and combine the
benefits of existing mechanisms.

In this talk, I will describe my work on using the ML module system as
a basis for developing next-generation module languages.  ML provides
an excellent starting point because of its powerful support for both
data abstraction (implementor-side modularity) and generic programming
(client-side modularity).  Nevertheless, there are ways in which ML's
module language is unnecessarily inflexible and in which the
expressive power of ML modules has not been exploited to its full
potential.

In the first part of the talk, I will compare the support for generic
programming offered by ML modules with that offered by Haskell's "type
classes".  Modules emphasize explicit program configuration and
namespace control, whereas type classes emphasize implicit program
configuration and overloading.  In fact, I show that it is possible to
support both styles of programming within one language, by exploiting
the expressive power of ML modules and encoding type classes directly
in terms of existing ML module mechanisms.

In the second part of the talk, I will discuss the problem of
extending ML with one of the most frequently requested
features---recursive modules.  The lack of support for this feature is
a key stumbling block in incorporating ML-style modules into
object-oriented languages, in which recursive components are
commonplace.  The primary difficulty with recursive modules is
something called the "double vision" problem, which concerns the
interaction of recursion and data abstraction.  I trace the problem
back to a deficiency in the classical type-theoretic account of data
abstraction (namely, existential types), and I show how a novel
interpretation of data abstraction as a computational effect leads to
an elegant solution.

Contact

Brigitta Hansen
9325200
--email hidden
passcode not visible
logged in users only

Brigitta Hansen, 04/13/2007 11:29
Brigitta Hansen, 04/12/2007 14:27 -- Created document.