I have been a faculty member at the University of Chicago since the Autumn of 2002. I spent the prior eleven years as an MTS at Bell Labs in Murray Hill, New Jersey. I served as a rotating Program Director at the NSF in the CCF division from 2011 — 2013.
My primary area of research is the design and implementation of advanced programming languages, such as functional, object-oriented, and concurrent languages. Such languages provide the best hope for increasing the quality and reliability of software, while also improving programmer productivity. My current research focus is on high-level languages for parallel programming. Over the years, I have worked on the design and implementation of several advanced languages:
Diderot is a declarative domain-specific language for programming image-analysis algorithms on parallel systems. This project is joint work with Gordon Kindlmann.
The Manticore project is a collaboration with Matthew Fluet (Rochester Institute of Technology) aimed at developing language features and implementation techniques for multicore and small-scale SMP systems. It consists of a parallel dialect of Standard ML (called PML) and a parallel runtime system. and implement a language for programming multicore processors.
The Moby programming language is a higher-order typed language with support for object-oriented and concurrent programming. The Moby project, which is joint work with Kathleen Fisher of AT&T Labs --- Research, provides a testbed for exploring ideas in language design and implementation. Using this testbed, we have explored the relationship between module and class mechanisms; language interoperability; and compiler transformations for functional languages.
I have been a contributor to the Standard ML of New Jersey system since about 1990.
I am also interested in computer graphics. I designed the ray-tracer problem for the ICFP 2000 Programming Contest and have am the primary implementor of the SML3d library.