Affiliation:
1. S-Core
2. CNRS, ENS, INRIA Paris-Rocquencourt, PSL* University
3. KAIST, Yuseong-gu, Republic of Korea
Abstract
Program analyses often utilize various forms of
sensitivity
such as context sensitivity, call-site sensitivity, and object sensitivity. These techniques all allow for more precise program analyses, that are able to compute more precise program invariants, and to verify stronger properties. Despite the fact that sensitivity techniques are now part of the standard toolkit of static analyses designers and implementers, no comprehensive frameworks allow the description of all common forms of sensitivity. As a consequence, the soundness proofs of static analysis tools involving sensitivity often rely on ad hoc formalization, which are not always carried out in an abstract interpretation framework. Moreover, this also means that opportunities to identify similarities between analysis techniques to better improve abstractions or to tune static analysis tools can easily be missed.
In this article, we present and formalize a framework for the description of
sensitivity in static analysis
. Our framework is based on a powerful abstract domain construction, and utilizes reduced cardinal power to tie basic abstract predicates to the properties analyses are sensitive to. We formalize this abstraction, and the main abstract operations that are needed to turn it into a generic abstract domain construction. We demonstrate that our approach can allow for a more precise description of program states, and that it can also describe a large set of sensitivity techniques, both when sensitivity criteria are static (known before the analysis) or dynamic (inferred as part of the analysis), and sensitive analysis tuning parameters. Last, we show that sensitivity techniques used in state-of-the-art static analysis tools can be described in our framework.
Funder
Project MemCAD
ARTEMIS Joint Undertaking
European Research Council under the EU's seventh framework programme
National Research Foundation of Korea
Publisher
Association for Computing Machinery (ACM)
Cited by
13 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Precise Compositional Buffer Overflow Detection via Heap Disjointness;Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis;2024-09-11
2. Don’t Write, but Return: Replacing Output Parameters with Algebraic Data Types in C-to-Rust Translation;Proceedings of the ACM on Programming Languages;2024-06-20
3. An input–output relational domain for algebraic data types and functional arrays;Formal Methods in System Design;2024-06-13
4. DatAFLow
: Toward a Data-Flow-Guided Fuzzer;ACM Transactions on Software Engineering and Methodology;2023-07-21
5. Automatically deriving JavaScript static analyzers from specifications using Meta-level static analysis;Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2022-11-07