My research is broadly focused on language design and domain-specific languages. I believe that clear and expressive languages are essential for understanding, solving, and explaining difficult problems. I am especially interested in type systems, functional programming, visual languages, and in designing languages for domain experts who may not be professional programmers.
Currently, I am researching formal representations and analyses of variation. This research is motived by improving the development and maintenance of massively configurable software, such as software product lines and the Linux kernel. I am the co-creator of the choice calculus, a simple calculus of variation that can be easily extended with new features and instantiated by new object languages.
I am serving, or have recently served, on the program committees for:
CS 589 Programming Language Fundamentals (Spring 2015)
Past courses are listed on my teaching page.
- New DARPA grant! – August 5, 2015
- Paper accepted to VL/HCC'15 – July 3, 2015
- Best paper award at GPCE'14 – September 15, 2014
Elsewhere on the Web
I have accounts at all the usual places, though most of them are neglected. Here are my profiles at some sites I actively use.