I am interested in programming languages and compilers, in software development, and in computer science education. My long-term goal is to improve the reliability and security of software, and the productivity of those who develop it.
Many of the problems we encounter in traditional software development are social in nature; poor communication is the prime example. Early work showed that the choice of programming language made relatively little difference in productivity.
Nevertheless, my work is motivated by the conviction that languages, tools, and environments can go a long way toward improving the quality of the software we produce.
Below are brief descriptions of some of my research projects.