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, and modularity.
Currently, I am researching formal representations and analyses of variation. 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. This research was originally motived by improving the development and maintenance of massively configurable software, such as software product lines. However, it has since been applied to modeling resource consumption, optimizing gradually typed programs, typing generalized algebraic data types, and more.
CS 581: Programming Languages I (Fall 2018)
Past courses are listed on my teaching page.
I am an organizer and activist for the United Academics of Oregon State University. If you have any questions about our new faculty union here at OSU, please shoot me an email. I’d love to talk!
Recently, I organized and chaired the graduate consortium at VL/HCC 2017, and organized and co-chaired several workshops: FOSD 2017, DSLDI 2017, and DSLDI 2016. I was also the web and publicity co-chair for SPLASH 2017.
I am also serving or have recently served on the program committees for:
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! Just send me an email.
Current weekly meeting time (Fall 2018): Wednesday 11am, KEC 3057
- Ghadeer Al Kubaish, MS student
- Parisa Ataei, PhD candidate
- Sebastian Benjamin, undergraduate research
- Qiaoran Li, MS student
- Spencer Mitchell, RELU student
- Nasrin Sanati, MS student
- Jeff Young, PhD student
Past students, along with their theses or project reports are listed on my advising page.
Elsewhere on the Web
Here are my profiles at some sites I actively use:
I purposely do not have accounts at ResearchGate or Academia.edu.