I am currently serving as a rotating Program Director for the NSF in the CCF division.
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.
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.