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.
Research
Focus Areas: Parallel and Concurrent Programming Languages
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.
- Concurrent ML is a concurrent programming language embedded in SML. Its most novel feature is first-class synchronous operations, which support user-defined communication and synchronization abstractions.
- 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 am the primary implementor of the SML3d library.