CiFi: Versatile Analysis of Class and Field Immutability
Tobias Roth, Dominik Helm, Michael Reif, Mira Mezini
摘要
Reasoning about immutability is important for pre-venting bugs, e.g., in multi-threaded software. So far, static analysis to infer immutability properties has mostly focused on individual objects and references. Reasoning about fields and entire classes, while significantly simpler, has gained less attention. Even a consistently used terminology is missing, which makes it difficult to implement analyses that rely on immutability information. We propose a model for class and field immutability that unifies terminology for immutability flavors considered by previous work and covers new levels of immutability to handle lazy initialization and immutability dependent on generic type parameters. Using the OPAL static analysis framework, we implement CiFi, a set of modular, collaborating analyses for different flavors of immutability, inferring the properties defined in our model. Additionally, we propose a benchmark of representative test cases for class and field immutability. We use the benchmark to showcase CiFi’s precision and recall in comparison to state of the art and use CiFi to study the prevalence of immutability in real-world libraries, showcasing the practical quality and relevance of our model.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper3
- Taking Out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static AnalysesFabian Stemmler, Michael Schwarz, Julian Erhard, Sarah Tilscher 等PLDI 2025 · 被引用 3 次
- Persisting and Reusing Results of Static Program Analyses on a Large ScaleJohannes Düsing, Ben HermannASE 2023 · 被引用 1 次
- Unimocg: Modular Call-Graph Algorithms for Consistent Handling of Language FeaturesDominik Helm, Tobias Roth, Sven Keidel, Michael Reif 等ISSTA 2024
它引用的顶会 Paper1
相关 Paper
- Transitive, Abstract, and Class Polymorphic ImmutabilityAosen Xiong, Yudi Bai, Haifeng Shi, Lian Sun 等OOPSLA 2026
- A programming model for semi-implicit parallelization of static analysesDominik Helm, Florian Kübler, Jan Thomas Kölzer, Philipp Haller 等ISSTA 2020 · 被引用 8 次
- Dynamically Checked Deep Immutability in PythonFridtjof Peer Stoldt, Sylvan Clebsch, Matthew A. Johnson, Matthew J. Parkinson 等PLDI 2026 · 被引用 1 次
- A conceptual framework for safe object initialization: a principled and mechanized soundness proof of the Celsius modelClement Blaudeau, Fengyun LiuOOPSLA 2022 · 被引用 2 次
- Hybrid Inlining: A Framework for Compositional and Context-Sensitive Static AnalysisJiangchao Liu, Jierui Liu, Peng Di, Diyu Wu 等ISSTA 2023 · 被引用 3 次
