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.
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.