2017 11th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2017), September 4–8, 2017, Paderborn, Germany

Desktop Layout

Handling Failures
Research Papers
S3, Chair: Fabrizio Pastore
Failure-Directed Program Trimming
Kostas Ferles, Valentin Wüstholz, Maria Christakis, and Isil Dillig
(University of Texas at Austin, USA; University of Kent, UK)
Publisher's Version
Abstract: This paper describes a new program simplification technique called emph{program trimming} that aims to improve the scalability and precision of safety checking tools. Given a program ${mathcal P}$, program trimming generates a new program ${mathcal P}'$ such that ${mathcal P}$ and ${mathcal P}'$ are emph{equi-safe} (i.e., ${mathcal P}'$ has a bug if and only if ${mathcal P}$ has a bug), but ${mathcal P}'$ has fewer execution paths than ${mathcal P}$. Since many program analyzers are sensitive to the number of execution paths, program trimming has the potential to improve the effectiveness of safety checking tools. In addition to introducing the concept of program trimming, this paper also presents a lightweight static analysis that can be used as a pre-processing step to remove program paths while retaining equi-safety. We have implemented the proposed technique in a tool called {sc Trimmer} and evaluate it in the context of two program analysis techniques, namely abstract interpretation and dynamic symbolic execution. Our experiments show that program trimming significantly improves the effectiveness of both techniques.


Time stamp: 2020-01-25T17:23:09+01:00