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.
Domain-Specific Language Design and Implementation (DSLDI’16)
I am organizer and co-chair of this year’s DSLDI workshop, co-located with SPLASH 2016 in Amsterdam (Oct 30–Nov 4). Please consider submitting a short talk proposal! A special goal of this year’s workshop is to encourage participation from end-user programming and human factors of programming languages researchers.
I am also serving, or have recently served, on the program committees for:
- SLE 2016
- VL/HCC 2016
- PEPM 2016
- VL/HCC 2015 (also showpieces co-chair, and on the grad consortium committee)
- VaMoS 2015
CS 583 (Advanced) Functional Programming (Spring 2016)
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
Grad Student Mentoring
Here are my current students:
Lambda Reading Group: We’re a group of programming languages students and faculty that meets to discuss a different paper each week. If you’re interested in programming languages, you’re welcome to join. We coordinate by email, so drop me a line if you want to attend so you can read the paper ahead of time.
Current weekly meeting times:
- Research talks: Monday 1-2pm
- Reading group: Wednesday 2-3pm
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.