Affiliation:
1. Johannes Gutenberg University Mainz, Germany
Abstract
Abstract interpretation is a methodology for defining sound static analysis. Yet, building sound static analyses for modern programming languages is difficult, because these static analyses need to combine sophisticated abstractions for values, environments, stores, etc. However, static analyses often tightly couple these abstractions in the implementation, which not only complicates the implementation, but also makes it hard to decide which parts of the analyses can be proven sound independently from each other. Furthermore, this coupling makes it hard to combine soundness lemmas for parts of the analysis to a soundness proof of the complete analysis.
To solve this problem, we propose to construct static analyses modularly from
reusable analysis components
. Each analysis component encapsulates a single analysis concern and can be proven sound independently from the analysis where it is used. We base the design of our analysis components on
arrow transformers
, which allows us to compose analysis components. This composition preserves soundness, which guarantees that a static analysis is sound, if all its analysis components are sound. This means that analysis developers do not have to worry about soundness as long as they reuse sound analysis components. To evaluate our approach, we developed a library of 13 reusable analysis components in Haskell. We use these components to define a
k
-CFA analysis for PCF and an interval and reaching definition analysis for a While language.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Abstract Interpretation of Java Bytecode in Sturdy;Proceedings of the 26th ACM International Workshop on Formal Techniques for Java-like Programs;2024-09-20
2. Abstract Interpreters: A Monadic Approach to Modular Verification;Proceedings of the ACM on Programming Languages;2024-08-15
3. Compiling with Abstract Interpretation;Proceedings of the ACM on Programming Languages;2024-06-20
4. Interactive Abstract Interpretation with Demanded Summarization;ACM Transactions on Programming Languages and Systems;2024-03-29
5. A Modular Soundness Theory for the Blackboard Analysis Architecture;Lecture Notes in Computer Science;2024