Sysread Talk


"Rehabilitating the POSIX shell"

Michael Greenberg, Pomona College

Friday, October 19, 2018 at 12:00 Noon

Room 368 (CIT 3rd Floor)

We build intricate systems with complex algorithms and invariants, aiming for guarantees of correctness and performance... and then we maintain and deploy these systems with shell scripts! What *are* shell scripts? If the POSIX shell is a programming language, what are its syntax and semantics? Can we apply PL tools to reason about the shell? Why haven't prior PL attempts at understanding the shell redeemed it? In this talk, I'll explain the shell's semantics, demonstrate a tool for understanding the shell built on a mechanized small-step semantics of the shell, and explain why my approach is different from prior academic work on the shell.

Michael Greenberg is an assistant professor at Pomona College. He received his BA in Computer Science and Egyptology from Brown University (2007) and his PhD in Computer Science from the University of Pennsylvania (2013). His work has ranged from functional-reactive JavaScript (with Shriram Krishnamurthi at Brown) to runtime verification of higher-order programs using contracts (with Benjamin Pierce at Penn) to software-defined networking (with Dave Walker at Princeton) to present activities focused on Kleene algebra with tests and the POSIX shell.

Host: Shriram Krishnamurthi, Theo Benson, Rodrigo Fonseca, and Tim Nelson