I work in Programming Languages and Programming Environments. I'm one of the authors of DrRacket. I explore ways to make programming environments more reliable, more elegant, and more theoretically well-founded. My research includes the following:

  • Continuation Marks: an easy-to-implement language feature that allows non-privileged implementations of debuggers, profilers, stack inspection, etc.
  • Little Languages: their development and implementation, particularly as hygienic extensions to existing languages
  • A uniform debugging engine that applies without change to functional, imperative, lazy, logic, and reactive programming languages

I am a strong advocate of functional programming, functional languages, and the disciplined functional approach to teaching students how to write programs. My work in the last seven years has been with the PLT group of Matthias Felleisen.

Thank Heavens For DrRacket.