On-the-Fly Static Analysis via Dynamic Bidirected Dyck Reachability
Shankaranarayanan Krishna, Aniket Lal, Andreas Pavlogiannis, Omkar Tuppe
摘要
Dyck reachability is a principled, graph-based formulation of a plethora of static analyses. Bidirected graphs are used for capturing dataflow through mutable heap data, and are usual formalisms of demand-driven points-to and alias analyses. The best (offline) algorithm runs in 𝑂 (𝑚 + 𝑛 • 𝛼 (𝑛)) time, where 𝑛 is the number of nodes and 𝑚 is the number of edges in the flow graph, which becomes 𝑂 (𝑛 2 ) in the worst case.
In the everyday practice of program analysis, the analyzed code is subject to continuous change, with source code being added and removed. On-the-fly static analysis under such continuous updates gives rise to dynamic Dyck reachability, where reachability queries run on a dynamically changing graph, following program updates. Naturally, executing the offline algorithm in this online setting is inadequate, as the time required to process a single update is prohibitively large.
In this work we develop a novel dynamic algorithm for bidirected Dyck reachability that has 𝑂 (𝑛 • 𝛼 (𝑛)) worst-case performance per update, thus beating the 𝑂 (𝑛 2 ) bound, and is also optimal in certain settings. We also implement our algorithm and evaluate its performance on on-the-fly data-dependence and alias analyses, and compare it with two best known alternatives, namely (i) the optimal offline algorithm, and (ii) a fully dynamic Datalog solver. Our experiments show that our dynamic algorithm is consistently, and by far, the top performing algorithm, exhibiting speedups in the order of 1000X. The running time of each update is almost always unnoticeable to the human eye, making it ideal for the on-the-fly analysis setting.
CCS Concepts: • Software and its engineering → Software verification and validation; • Theory of computation → Theory and algorithms for application domains; Program analysis.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper2
- Efficient algorithms for dynamic bidirected Dyck-reachabilityYuanbo Li, Kris Satya, Qirun ZhangPOPL 2022 · 被引用 8 次
- Bounded Treewidth, Multiple Context-Free Grammars, and Downward ClosuresC. Aiswarya, Pascal Baumann, Prakash Saivasan, Lia Schütze 等POPL 2026 · 被引用 1 次
它引用的顶会 Paper10
- Fast graph simplification for interleaved Dyck-reachabilityYuanbo Li, Qirun Zhang, Thomas W. RepsPLDI 2020 · 被引用 30 次
- The fine-grained and parallel complexity of andersen's pointer analysisAnders Alnor Mathiasen, Andreas PavlogiannisPOPL 2021 · 被引用 22 次
- Fixpoints for the masses: programming with first-class Datalog constraintsMagnus Madsen, Ondrej LhotákOOPSLA 2020 · 被引用 22 次
- Subcubic certificates for CFL reachabilityDmitry Chistikov, Rupak Majumdar, Philipp SchepperPOPL 2022 · 被引用 17 次
- The decidability and complexity of interleaved bidirected Dyck reachabilityAdam Husted Kjelstrøm, Andreas PavlogiannisPOPL 2022 · 被引用 17 次
相关 Paper
- Indexing the extended Dyck-CFL reachability for context-sensitive program analysisQingkai Shi, Yongchao Wang, Peisen Yao, Charles ZhangOOPSLA 2022 · 被引用 11 次
- Iterative-Epoch Online Cycle Elimination for Context-Free Language ReachabilityPei Xu, Yuxiang Lei, Yulei Sui, Jingling XueOOPSLA 2024 · 被引用 3 次
- On the complexity of bidirected interleaved Dyck-reachabilityYuanbo Li, Qirun Zhang, Thomas W. RepsPOPL 2021 · 被引用 12 次
- Context-Free Language Reachability via Skewed TabulationYuxiang Lei, Camille Bossut, Yulei Sui, Qirun ZhangPLDI 2024 · 被引用 5 次
- Single-Source-Single-Target Interleaved-Dyck Reachability via Integer Linear ProgrammingYuanbo Li, Qirun Zhang, Thomas W. RepsPOPL 2023 · 被引用 6 次
