Michael Greenberg

Assistant Professor Department of Computer Science Pomona College
Office: Edmunds 225
Office: MD 153 @ Harvard
Phone: 909-607-4554
I will be away from Claremont on leave through Fall 2019, returning for Spring 2020. The best way to contact me remains email. I will be based at Harvard until June 2019. I will not be checking voicemail while on leave.

I study programming languages. My research has focused on strengthening the guarantees on offer at the “easy and automatic” end of the spectrum. I primarily work in two areas: contracts, a flexible form of runtime verification for higher-order programming languages; and software-defined networking, a recent development that allows for straightforward centralized control of computer networks. I'm just starting work on formalizing the POSIX shell.

I've also been building tools that apply topic models to the PL literature.


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)
Office hours

I will not be on campus while on leave, so I won't be holding office hours. I can be reached via email. The goose is available by appointment (contact Prof. Kauchak).



Venue Paper (see a complete list)
In submission Kleene Algebras Modulo Theories Ryan Beckett, Eric Campbell, and Michael Greenberg
SNAPL 2019 The Dynamic Practice and Static Theory of Gradual Typing Michael Greenberg
CoqPL 2019 Teaching Discrete Mathematics to Early Undergraduates with Software Foundations Michael Greenberg and Joseph C. Osborn
DSLDI 2018 The POSIX shell is an interactive DSL for concurrency Michael Greenberg
PX 2018 Word expansion supports POSIX shell interactivity Michael Greenberg
TOPLAS 2017 Polymorphic Manifest Contracts, Revised and Resolved Taro Sekiyama, Astushi Igarashi, Michael Greenberg
OBT 2017 Understanding the POSIX Shell as a Programming Language Michael Greenberg
TFP 2016 Space-Efficient Latent Contracts Michael Greenberg
SIGCOMM 2016 SNAP: Stateful Network-Wide Abstractions for Packet Processing Mina Tahmasbi Arashloo, Yaron Koral, Michael Greenberg, Jennifer Rexford, and David Walker
PLDI 2016 Temporal NetKAT Ryan Beckett, Michael Greenberg, David Walker
... complete list ...
Student theses
Year Student Title
2018 Austin Blatt Mechanized Semantics for Word Expansion in the POSIX Shell
2017 Eric Campbell Infiniteness and Linear Temporal Logic

Other news and activities