Derek Dreyer → Research
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.
From January 2005 to December 2007, I was a research assistant professor (3-year postdoc) at the Toyota Technological Institute at Chicago (TTI-C).
Before that, I studied type theory with Bob Harper and Karl Crary at Carnegie Mellon University, receiving my Ph.D. in Computer Science in May 2005.
Curriculum Vitae
Research Activities
Professional Activities
Research Group Members
External 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 and
generalizes a variety of superficially distinct features. A prototype
implementation is available here.
More recently, I've been working on reasoning about the semantics of
modules, a topic that is of crucial importance as module languages
grow more complex. As a starting point, in work with Amal Ahmed and Andreas
Rossberg, I've set out to prove some simple results about how type
generativity allows one to tie the (relational) interpretation of an
abstract type to local state. These results, while simple to state,
have been devilishly hard to prove, due to the subtle interaction of
higher-order, functional and imperative features that are involved.
Our technique involves the use of step-indexed logical
relations. While this is a powerful technique, it also results in
step-index (natural number) arithmetic spreading like moss over
otherwise-readable proofs. So, more recently, in work with Amal Ahmed
and Lars Birkedal, I've developed a
logic for reasoning about step-indexed logical relations in a more
abstract way that doesn't mention steps.
Current:
-
Georg Neis, student (since Nov. 2008)
-
Beta Ziliani, student (since Jan. 2010)
Former:
-
Logical Step-Indexed Logical Relations.
Derek Dreyer, Amal Ahmed, and Lars Birkedal.
Submitted for publication, January 2010.
This is a revised, corrected, and expanded version of our LICS 2009 paper.
Draft of Journal Version: (abstract, paper)
-
F-ing Modules.
Andreas Rossberg, Claudio V. Russo, and Derek Dreyer.
In 2010 ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI 2010).
Workshop Version: (abstract, paper, Coq script)
-
A Relational Modal Logic for Higher-Order Stateful ADTs.
Derek Dreyer, Georg Neis, Andreas Rossberg, and Lars Birkedal.
In 2010 ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2010).
Conference Version: (abstract,
paper,
appendix)
-
Non-Parametric Parametricity.
Georg Neis, Derek Dreyer, and Andreas Rossberg.
In 2009 ACM SIGPLAN International Conference on Functional Programming (ICFP 2009).
Conference Version: (abstract,
paper)
Long Version: (Georg Neis's master's thesis)
-
Logical Step-Indexed Logical Relations.
Derek Dreyer, Amal Ahmed, and Lars Birkedal.
In 2009 IEEE Symposium on Logic in Computer Science (LICS 2009).
Conference Version + Appendix: (abstract,
paper)
Slides: (pdf)
This paper suffers from a non-negligible (if ultimately minor) technical flaw.
See our LMCS submission above for a revised, corrected, and expanded version.
-
State-Dependent Representation Independence.
Amal Ahmed, Derek Dreyer, and Andreas Rossberg.
In 2009 ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2009).
Conference Version:
(abstract,
paper,
appendix)
-
Mixin' Up the ML Module System.
Derek Dreyer and Andreas Rossberg.
In 2008 ACM SIGPLAN International Conference on Functional Programming (ICFP 2008).
Conference Version:
(abstract,
pdf)
Slides: (pdf)
Expanded Version:
(pdf,
project website)
-
Mechanizing the Metatheory of a Language With Linear Resources and Context Effects.
Daniel K. Lee, Derek Dreyer, and Andreas Rossberg.
In 2008 ACM SIGPLAN Informal Workshop on Mechanizing Metatheory (WMM 2008).
Abstract:
(pdf)
Slides:
(pdf)
-
A Type System for Recursive Modules.
Derek Dreyer.
In 2007 ACM SIGPLAN International Conference on Functional Programming (ICFP 2007).
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 2007).
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-SIGACT Symposium on Principles of Programming Languages (POPL 2007).
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 2005.
Journal Version:
(pdf)
Original version appeared in 2005 ACM SIGPLAN International Conference on Functional Programming (ICFP 2005).
Conference Version:
(abstract,
pdf)
Slides: (ppt)
-
A Type System for Well-Founded Recursion.
Derek Dreyer.
In 2004 ACM
SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2004).
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-SIGACT Symposium on Principles of Programming Languages (POPL 2003).
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 2003).
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 Feb 6 23:41:51 CET 2010