The POSIX shell is a widely deployed, powerful tool for managing
computer systems. The shell is the expert’s control panel, a necessary
tool for configuring, compiling, installing, maintaining, and deploying
systems. Even though it is powerful, critical infrastructure, the POSIX
shell is maligned and misunderstood. Its power and its subtlety are a
dangerous combination.
How can we support the POSIX shell? I'll describe two recent lines of
work---Smoosh, a formal, mechanized, executable small-step semantics for
the POSIX shell---and ffs---a tool for helping users manipulate
semi-structured data (like JSON and YAML) in the shell. I'll also
discuss ongoing work on PaSh with Konstantinos Kallas, Nikos Vasilakis,
and others.
Michael Greenberg is an assistant professor at the Stevens
Institute of Technology, having recently moved from Pomona College. He
received BAs in Computer Science and Egyptology from Brown University
(2007) and his PhD in Computer Science from the University of
Pennsylvania (2013). He has made many kinds of jam, but this is his first
plum jam.