Affiliation:
1. Imperial College London, London, United Kingdom
2. Queen Mary, University of London, London, United Kingdom
Abstract
This paper describes a compositional shape analysis, where each procedure is analyzed independently of its callers. The analysis uses an abstract domain based on a restricted fragment of separation logic, and assigns a collection of Hoare triples to each procedure; the triples provide an over-approximation of data structure usage. Compositionality brings its usual benefits -- increased potential to scale, ability to deal with unknown calling contexts, graceful way to deal with imprecision -- to shape analysis, for the first time.
The analysis rests on a generalized form of abduction (inference of explanatory hypotheses) which we call
bi-abduction
. Bi-abduction displays abduction as a kind of inverse to the frame problem: it jointly infers anti-frames (missing portions of state) and frames (portions of state not touched by an operation), and is the basis of a new interprocedural analysis algorithm. We have implemented our analysis algorithm and we report case studies on smaller programs to evaluate the quality of discovered specifications, and larger programs (e.g., an entire Linux distribution) to test scalability and graceful imprecision.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
137 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Quiver: Guided Abductive Inference of Separation Logic Specifications in Coq;Proceedings of the ACM on Programming Languages;2024-06-20
2. Everything is Good for Something: Counterexample-Guided Directed Fuzzing via Likely Invariant Inference;2024 IEEE Symposium on Security and Privacy (SP);2024-05-19
3. Outcome Separation Logic: Local Reasoning for Correctness and Incorrectness with Computational Effects;Proceedings of the ACM on Programming Languages;2024-04-29
4. On the Relationship between Code Verifiability and Understandability;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30
5. Hybrid Inlining: A Framework for Compositional and Context-Sensitive Static Analysis;Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis;2023-07-12