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 381 Programming Language Fundamentals (Spring 2015)
Past courses are listed on my teaching page.
- Best paper award at GPCE'14 – September 15, 2014
- Projectional Editing paper accepted to GPCE'14 – July 8, 2014
- Variational Data Structures paper accepted to Onward!'14 – May 27, 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.