My research focuses on directly applying formalism to practical problems. Much of my work takes place in the emerging field of semantics engineering, where I scale PL techniques up to work on real systems.
My primary focus is on improving the the POSIX shell and building tools to support its use.
I work in a variety of other areas: contracts and gradual types; tools for directly expressing PL formalism, using logic programming and SMT solving; and foundational semantics for decidable languages, like Kleene algebra with tests.
| Semester | Courses | 
|---|---|
| S2021 | 
                CS 105 (w/ Prof. Birrell)
                 CS 190  | 
            
| F2020 | 
                CS 054 (archived)
                 CS 190 (archived)  | 
            
| S2020 | 
                CS 054 (archived) (w/ Prof. Osborn)
                 CS 181-N (archived)  | 
            
| F2019 | On leave | 
| S2019 | On leave | 
| F2018 | On leave | 
| S2018 | 
                CS 131 (archived)
                 CS 54 (archived)  | 
            
| F2017 | 
                CS 131 (archived)
                 CS 190 (archived)  | 
            
| S2017 | 
                CS 55 (archived)
                 CS 131 (archived)  | 
            
| F2016 | 
                CS 131 (archived)
                 CS 190 (archived)  | 
            
| S2016 | 
                CS 51 (w/ Profs. Chen, Kampe, and Wu)
                 CS 181-N Software Foundations (archived)  | 
            
| F2015 | 
                CS 51 (w/ Profs. Chen, Kampe, and Wu)
                 CS 131 (archived)  | 
            
| Course | Day | Time | Location | 
|---|---|---|---|
| CS 105 | Tue | 9-11am PT | Zoom | 
| CS 105 | Fri | 1:30-3pm PT | Zoom | 
I can be reached via email to schedule meetings on Zoom, Skype, or telephone. I am also on Zulip for my respective courses.
| Year | Student | Title | 
|---|---|---|
| 2019 | Teddy Katz  (MIT)  | 
            Verified Compilation of Abstract Network Policies  (with Adam Chlipala)  | 
          
| 2018 | Austin Blatt | Mechanized Semantics for Word Expansion in the POSIX Shell | 
| 2017 | Eric Campbell | Infiniteness and Linear Temporal Logic |