My Research
I received my Ph.D. in Computer Science from Carnegie Mellon University in May 2005.
From January 2005 to December 2007, I was a research assistant professor (3-year postdoc) at the Toyota Technological Institute at Chicago (TTI-C).
Since January 2008, I am an independent researcher (tenure-track faculty) at the Max Planck Institute for Software Systems (MPI-SWS) in Saarbrücken, Germany, heading the Type Systems and Functional Programming group.
Curriculum Vitae
Research Activities
Professional Activities
Collaborators
Publications
My primary research interests are in
functional programming languages and their foundations in type
theory. My work to date has focused on ML, one of the most widely
used HOT (higher-order, typed) functional languages. In my thesis work, I developed a unified way of
understanding the ML module system that clarifies the relationships
between existing dialects of ML. I also studied the problem of
extending ML with support for recursive modules, and implemented an
experimental recursive module extension in the TILT compiler,
developed at CMU.
After moving to TTI-Chicago, I
continued my thesis work on evolving the ML module system. I
developed a type system for recursive
modules that is the first to solve a critical problem involving
the interaction of recursion and data abstraction known as the
double vision problem. In other work with Bob Harper and Manuel
Chakravarty, I showed how to extend ML with support for
overloading and ad hoc polymorphism through Haskell-style
type classes. This work exposes deep connections between ML
modules and Haskell type classes, resulting in a unifying account of
the two features that encourages modularity and avoids redundancy of
mechanism. In the process of extending ML with type classes, I
discovered an oversight in the Definition of Standard ML, namely that
the classic principal types property of core ML does not
generalize properly in the presence of modules. Subsequently, in work with Matthias Blume, I
showed how to regain principal types for full ML by exploiting
techniques developed in my (superficially unrelated) study of
recursive modules.
After accepting a tenure-track position at MPI-SWS, I was fortunate to hire Andreas
Rossberg as a postdoc in my Type Systems and Functional Programming
research group. Andreas and I have developed a novel module system design
that addresses one of the key remaining problems with recursive
modules, namely separate compilation. This design seamlessly
integrates elements of both traditional ML module systems and
Bracha-style mixin modules, resulting in a clean, elegant, and
minimalist account of the ML module system that unifies a variety of
superficially distinct features. A prototype implementation is available
here.
- Invited speaker, 2008 Conference on the Mathematical Foundations of Programming Semantics (MFPS XXIV)
- Program committee member, 2008 ACM SIGPLAN International Conference on Functional Programming (ICFP '08)
- Steering committee member, ACM SIGPLAN Workshop on ML (2007--present)
- Program chair, 2007 ACM SIGPLAN Workshop on ML (ML '07)
- Program committee member, 2007 ACM SIGPLAN Haskell Workshop (Haskell '07)
- Invited observer, 2007 Meeting of IFIP Working Group 2.8 on Functional Programming
- Program committee member, 2007 ACM SIGPLAN International Workshop on
Foundations and Developments of Object-Oriented Languages
(FOOL/WOOD '07)
- Program committee member, 2006 ACM SIGPLAN Workshop on ML (ML '06)
- External reviewer for a number of major conferences and journals, including POPL, ICFP, PLDI, TOPLAS,
JFP, ESOP, ECOOP, TCS, CSL, PPDP, and APLAS.
-
State-Dependent Representation Independence.
Amal Ahmed, Derek Dreyer, and Andreas Rossberg.
Submitted for publication, July 2008.
Draft:
(abstract,
paper)
The companion technical appendix will be available shortly.
Publications
-
Mixin' Up the ML Module System.
Derek Dreyer and Andreas Rossberg.
In 2008 ACM SIGPLAN International Conference on Functional Programming (ICFP '08).
Conference Version:
(abstract,
pdf)
Expanded Version:
(pdf,
project website)
-
A Type System for Recursive Modules.
Derek Dreyer.
In 2007 ACM SIGPLAN International Conference on Functional Programming (ICFP '07).
Conference Version:
(abstract,
pdf)
University of Chicago Comp. Sci. Dept. Technical Report TR-2007-10, July 2007.
Technical Report:
(pdf)
-
Principal Type Schemes for Modular Programs.
Derek Dreyer and Matthias Blume.
In 2007 European Symposium on Programming (ESOP '07).
Conference Version:
(abstract,
pdf)
Slides: (ppt)
University of Chicago Comp. Sci. Dept. Technical Report TR-2007-02, January 2007.
Supersedes TR-2006-08, October 2006.
Technical Report:
(pdf)
-
Modular Type Classes.
Derek Dreyer, Robert Harper, and Manuel M.T. Chakravarty.
In 2007 ACM SIGPLAN Symposium on Principles of Programming Languages (POPL '07).
Conference Version:
(abstract,
pdf)
Slides: (ppt)
University of Chicago Comp. Sci. Dept. Technical Report TR-2006-09, October 2006.
Supersedes TR-2006-03, April 2006.
Technical Report:
(pdf)
-
Recursive Type Generativity.
Derek Dreyer.
Journal of Functional
Programming (JFP). 17(4&5), 433--471, July & September 2007.
Special issue devoted to extended versions of selected papers from ICFP '05.
Journal Version:
(pdf)
Original version appeared in 2005 ACM SIGPLAN International Conference on Functional Programming (ICFP '05).
Conference Version:
(abstract,
pdf)
Slides: (ppt)
-
A Type System for Well-Founded Recursion.
Derek Dreyer.
In 2004 ACM
SIGPLAN Symposium on Principles of Programming Languages (POPL '04).
Conference Version:
(abstract,
pdf)
Slides: (ppt)
Technical Report: (pdf)
-
A Type System for Higher-Order Modules.
Derek Dreyer, Karl Crary, and Robert Harper.
In
2003 ACM
SIGPLAN Symposium on Principles of Programming Languages (POPL '03).
Conference Version:
(abstract,
pdf)
Slides: (ppt)
Technical Report: (pdf)
-
Typed Compilation of Recursive Datatypes.
Joseph C. Vanderwaart, Derek Dreyer, Leaf Petersen,
Karl Crary, Robert Harper, and Perry Cheng.
In 2003
ACM SIGPLAN Workshop on Types in Language Design and Implementation
(TLDI '03).
Conference Version:
(abstract,
pdf)
Slides: (ppt)
Technical Report: (pdf)
-
Two Heuristics for the Euclidean Steiner Tree Problem.
Derek R. Dreyer and Michael L. Overton.
Journal of Global Optimization, 13: 95-106, 1998.
Journal Version:
(abstract,
pdf)
Ph.D. Thesis
-
Understanding and Evolving the ML Module System.
Derek Dreyer.
Ph.D. Thesis, CMU Technical Report CMU-CS-05-131, May 2005.
Technical Report:
(abstract,
pdf)
Other Technical Reports and Drafts
-
Practical Type Theory for Recursive Modules.
Derek Dreyer.
University of Chicago Comp. Sci. Dept. Technical Report TR-2006-07, August 2006.
Technical Report:
(abstract,
pdf)
-
Toward a Practical Type Theory for Recursive Modules.
Derek R. Dreyer, Robert Harper, and Karl Crary.
CMU Technical Report CMU-CS-01-112, March 2001.
Technical Report:
(abstract,
pdf)
Derek Dreyer
Last modified: Sat Mar 01 16:54:45 W. Europe Standard Time 2008