Incremental whole-program analysis in Datalog with lattices
Tamás Szabó, Sebastian Erdweg, Gábor Bergmann
Abstract
Incremental static analyses provide up-to-date analysis results in time proportional to the size of a code change, not the entire code base. This promises fast feedback to programmers in IDEs and when checking in commits. However, existing incremental analysis frameworks fail to deliver on this promise for whole-program lattice-based data-flow analyses. In particular, prior Datalog-based frameworks yield good incremental performance only for intra-procedural analyses.
In this paper, we first present a methodology to empirically test if a computation is amenable to incrementalization. Using this methodology, we find that incremental wholeprogram analysis may be possible. Second, we present a new incremental Datalog solver called Laddder to eliminate the shortcomings of prior Datalog-based analysis frameworks. Our Datalog solver uses a non-standard aggregation semantics which allows us to loosen monotonicity requirements on analyses and to improve the performance of lattice aggregators considerably. Our evaluation on real-world Java code confirms that Laddder provides up-to-date points-to, constant propagation, and interval information in milliseconds.
• Software and its engineering → Automated static analysis.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 8cafea4b-5288-4044-8c44-4b4e3402272eCited by top-tier papers16
- Bring Your Own Data Structures to DatalogArash Sahebolamri, Langston Barrett, Scott Moore, Kristopher K. MicinskiOOPSLA 2023 · 11 citations
- Efficient algorithms for dynamic bidirected Dyck-reachabilityYuanbo Li, Kris Satya, Qirun ZhangPOPL 2022 · 8 citations
- Datalog-Based Language-Agnostic Change Impact Analysis for MicroservicesQingkai Shi, Xiaoheng Xie, Xianjin Fu, Peng Di et al.ICSE 2025 · 4 citations
- On Abstraction Refinement for Bayesian Program AnalysisYuanfeng Shi, Yifan Zhang, Xin ZhangOOPSLA 2025 · 4 citations
- Interactive Debugging of Datalog ProgramsAndré Pacak, Sebastian ErdwegOOPSLA 2023 · 4 citations
Builds on1
Related papers
- IncIDFA: An Efficient and Generic Algorithm for Incremental Iterative Dataflow AnalysisAman Nougrahiya, V. Krishna NandivadaOOPSLA 2025 · 4 citations
- Hybrid Inlining: A Framework for Compositional and Context-Sensitive Static AnalysisJiangchao Liu, Jierui Liu, Peng Di, Diyu Wu et al.ISSTA 2023 · 3 citations
- Incremental Program Analysis in the Wild: An Empirical Study on Real-World Program ChangesXizao Wang, Xiangrong Bin, Lanxin Huang, Shangqing Liu et al.ASE 2025
- An Incremental Algorithm for Algebraic Program AnalysisChenyu Zhou, Yuzhou Fang, Jingbo Wang, Chao WangPOPL 2025 · 2 citations
- A programming model for semi-implicit parallelization of static analysesDominik Helm, Florian Kübler, Jan Thomas Kölzer, Philipp Haller et al.ISSTA 2020 · 8 citations
