From Ahead-of- to Just-in-Time and Back Again: Static Analysis for Unix Shell Programs
Shell programming is as prevalent as ever. It is also quite complex, due to the structure of shell programs, their use of opaque software components, and their complex interactions with the broader environment. As a result, even when exercising an abundance of care, shell developers discover devastating bugs in their programs only at runtime: at best, shell programs going wrong crash the execution of a long-running task; at worst, they silently corrupt the broader environment in which they execute---affecting user data, modifying system files, and rendering entire systems unusable. Could the shell's users enjoy the benefits of semantics-driven static analysis before their programs' execution---as offered by most other production languages?
Authors
- Lukas Lazarek (ORCID: https://orcid.org/0009-0000-6484-5270)
- Sungjoon Jung
- Nikos Vasilakis (ORCID: https://orcid.org/0000-0001-7347-298X)
- Eric Zhao (ORCID: https://orcid.org/0009-0000-4969-2376)
- Konstantinos Mamouras (ORCID: https://orcid.org/0000-0003-1209-7738)
- Κωνσταντίνος Καλλάς (ORCID: https://orcid.org/0000-0002-8984-6648)
- Evangelos Lamprou (ORCID: https://orcid.org/0009-0009-1989-3922)
- ZhuoHan Li (ORCID: https://orcid.org/0000-0003-4402-8665)
- Michael Greenberg (ORCID: https://orcid.org/0000-0003-0014-7670)
- Anirudh Narsipur
Institutions
- Stevens Institute of Technology (US)
- John Brown University (US)
- UCLA Health (US)
- Rice University (US)
Publication Details
- Published
- 2025-05-14
- DOI
- https://doi.org/10.1145/3713082.3730395
- Primary Topic
- Logic, programming, and type systems
- Type
- article
- Field-Weighted Citation Impact
- 0.00