PLT
Program by Design
NU PLT
NU PRL
 
Books
  HtDP
  HtDP/2e
  HtDC
  Sem. Eng.
 
Research
  Publications
  Presentations
 
Teaching
Programming
 
Thoughts
Coordinates
Miscellaneous
Resources
Quotes
 
Family
 
Home

Research

logo

The primary goal of my research is to discover how to design programs, components, and programming systems. I don't know any other way to understand design than to program and re-program and transform small and large programs. As I am getting to understand what happens, I am writing things down in "How to Design Programs", "How to Design Components" and "How to Design Systems." It is after all our duty as academics to find and to disseminate truth.

The secondary goal of my research is to design a programming language that supports the programming styles needed for my primary research. Since I consider "disciplined scripting" a good starting point for getting system off the ground, and since I consider explicit static typing an essential aspect of established, to-be-maintained programs, my research focuses on components, contracts, and sound type disciplines that accommodate my design. This thrust includes the transition from untyped code to typed code. In support of this research, I need a language that can grow -- and that calls for a one-of-a-kind macro technology.

My current specific research projects concern

In addition, I am working on a functional framework for programming and reasoning about distributed and interactive graphical programs. It provides me with a personal "playground" for exploring and testing all of the above in practice.

Financial support for my research currently comes from NSF, ARPA, AFOSR, and Mozilla. Past funding sources include CORD, US DoED, Exxon, Microsoft, and Texas ATP.


last updated on Wed Feb 26 11:48:36 EST 2014generated with Racket