マティアス ブルーメ
Matthias Blume
Update: I recently left TTIC and now work at
Google
My previous position was at:
Toyota Technological Institute at
Chicago
Current events
The 13th
ACM SIGPLAN International Conference on Functional Programming (ICFP
2008)
The 2008
ACM SIGPLAN Workshop on ML (ML 2008)
Commercial Users of Functional
Programming (CUFP)
The Sixth ASIAN Symposium on Programming Languages and Systems (APLAS 2008)
Contact and Coordinates
The institute just moved to its new location, so my new coordinates are as follows:
 Matthias Blume, Toyota Technological Institute at Chicago,
6045 South Kenwood Avenue, Chicago, Illinois 60637
 Room 524 (that's 5th floor, NE corner)
 blume (at) ttic . org
 (773) 8347494 (voice)
 (773) 8349881 (fax)
 Google Maps/Earth: 41°47'8.62"N 87°35'24.99"W
 Skype (intermittent)
About me
I am an assistant professor at TTIC.
Before I joined TTIC, I spent two years as Member of Technical
Staff in the Computing Sciences
Research department at Bell Labs
in Murray Hill, New Jersey. Prior to that I lived for two years in
Kyoto
where I spent my time at
KURIMS
as a
外国人特別研究員
(aka. "Special Foreign Researcher", more precisely:
a JSPS fellow).
I am interested in design, implementation, and applications of
highlevel programming languages. Past and current projects include:

The Standard ML of New Jersey (SML/NJ)
compiler. These days I am de facto in charge
of putting out new "working" versions.
 The Compilation
Manager (CM) for SML/NJ. Over time this has
developed into an integral component of SML/NJ.
 NLFFI, a new
foreignfunction interface for SML/NJ. Let ML code
manipulate C datastructures directly via an embedding of the C type
system into ML types.
 MLPolyR,
a tiny MLlike
language with row polymorphism, polymorphic record selection and
polymorphic sums, functional record update
and extensible firstclass
cases, mutable record fields, and a HindleyMilnerstyle
type system with principal types.We are working on a
prototype that currently compiles to native PowerPC code (under Mac
OS X). The language descripetion linked above is seriously
outofdate at the moment.
 A Semantics for SelfAdjusting Computation
with Umut Acar
and Jake Donham. We
developed the first formalized semantics of the combination of
memoization and changepropagation within the same framework and
prove this semantics consistent and correct (with
respect to a purely functional semantics). We formalized and
machinechecked our proof
using Twelf.
 Semantics of Contracts.
With David McAllester I
developed a settheoretic
model for Findler and Felleisen's Contracts for HigherOrder
Functions for which the contractchecking algorithm is sound
(i.e., never assigns false blame). More recently we extended this
model to also handle recursive
contracts.
With Robby
Findler I also worked on a reconciliation of the apparent
conflict between the above model and a view
of contracts
as projections by showing that contracts should be viewed
as pairs
of projections.
 Complete Type Inference for ML
with Derek Dreyer.
DamasMilnerstyle type inference for Standard ML is incomplete
(which might surprise a few people). We are working on a revised
declarative semantics and a corresponding inference algorithm designed to
close the existing gap.
 Programming language support
for selfadjusting
computation (with
Umut Acar).
 Largescale modular programming
(with Dave
MacQueen). In a nutshell: Extend the notion of
parameterized modules ("functors") to the case of
libraries.
 TupleScheme, the design of a Schemelike language with
firstclass tuples and procedures that are strictly
singleargument/singleresult which, nevertheless, is conservative
in the sense that all currently correct whole Scheme programs
continue to work unchanged.This is still
"vaporware", i.e., I know how to do it, but I have not done it
yet.
 I am interested
in helping to evolve the
design of the language that is currently known
as Standard
ML into a possible successor.
 Nova, a language for
programming network processors. Optimal register
allocation (for some suitable notion of "optimal") via integer
linear programming.
 VSCM, a
lightweight implementation
of Scheme. A
complete implementation of R4RS Scheme plus some extensions (e.g., a
module system) consisting of a portable bytecode interpreter and a
bytecode compiler. The project has been handed over to David
Rush.
Here is the draft of a proposal
for portable SML libraries.
Recent professional activities
Students:
Ph.D. students:
Service on thesis committees:
Teaching
GnuPG key
Last modified: May 29th, 2005