POPL 2026
Sun 11 - Sat 17 January 2026 Rennes, France

Recent years have seen a resurgence of research on the shell, from optimizing scripts to better leverage parallel and distributed computational resources, to the analysis of scripts for bug-finding, and even research on the usability and programmability of this simultaneously beloved and reviled programming environment. Research on the shell has always had opportunities for practical impact and technology transfer; the recent resurgence was kickstarted by key insights on the particularities of the shell and its differences compared to other languages. In this tutorial, we will teach you the fundamental techniques and tools that will allow you to (1) do research on the shell or related areas (CI/CD), and (2) build real-world practical tools that can improve the life of shell script users. We will focus on the particularities of the shell that make it different from other languages: its bimodal semantics (alternating string-y expansion and evaluation), its composition of black-box commands, and its highly dynamic nature. At the end of the tutorial you will be able to conduct various analyses on the shell, having built your own hybrid (static + dynamic) analysis for finding catastrophic rm bugs in your scripts.