paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Two Birds with One Stone: Multi-Derivation for Fast Context-Free Language Reachability Analysis

一石二鸟:面向快速上下文无关语言可达性分析的多重推导
ASE 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)2023匹配度 3/10 · 论文属于纯PL静态分析算法(CFL可达性、值流/别名分析),与画像中的PL×AI、LLM/Agent、浮点程序分析及贝叶斯程序分析等核心交叉方向没有直接关联;仅作为静态分析基础方法可能对ML/Agent程序分析有间接参考价值。引用 8 inbox
Chenghang Shi, Haofeng Li, Yulei Sui, Jie Lu, Lian Li, Jingling Xue
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 Pearl 多重推导方法,通过批量传播传递关系大幅减少 CFL 可达性分析冗余,加速值流与别名分析。

CFL 可达性是程序分析的基础框架,通常通过在带标签图上推导可达性关系实现。现有算法普遍采用单次推导(SRD),每次只处理一条关系,在求解频繁出现的传递关系时产生大量冗余,影响效率。本文提出 Pearl,一种多重推导方法:在传递性感知子图上批量传播可达性关系,同时推导多条涉及传递性的边,从而消除冗余。作者在 C/C++ 的上下文敏感值流分析和字段敏感别名分析上评估 Pearl。相比标准 CFL 算法,Pearl 分别平均加速 82.73 倍和 155.26 倍;相比当前最优求解器 Pocr,也平均快 10.1 倍(最高 29.2 倍)和 2.37 倍(最高 4.22 倍),且内存占用更低。

问题
现有 CFL 可达性算法采用单次可达性关系推导(SRD),每次只推导一条关系,导致传递关系求解中大量冗余,分析效率低。
方法
提出 Pearl,多重推导方法:从原带标签图诱导出传递性感知子图,在其上批量传播可达性关系,同时推导多条涉及传递性的边。
评估
在 C/C++ 的上下文敏感值流分析与字段敏感别名分析上评估,与标准 CFL 算法和 Pocr 比较速度与内存。
原文摘要(Abstract)

Context-free language (CFL) reachability is a fundamental framework for formulating program analyses. CFL-reachability analysis works on top of an edge-labeled graph by deriving reachability relations and adding them as labeled edges to the graph. Existing CFL-reachability algorithms typically adopt a single-reachability relation derivation (SRD) strategy, i.e., one reachability relation is derived at a time. Unfortunately, this strategy can lead to redundancy, hindering the efficiency of the analysis. To address this problem, this paper proposes Pearl, a multi-derivation approach that reduces derivation redundancy for transitive relations that frequently arise when solving reachability relations, significantly improving the efficiency of CFL-reachability analysis. Our key insight is that multiple edges involving transitivity can be simultaneously derived via batch propagation of reachability relations on the transitivity-aware subgraphs that are induced from the original edge-labeled graph. We evaluate the performance of Pearl on two clients, i.e., context-sensitive value-flow analysis and field-sensitive alias analysis for C/C++. By eliminating a large amount of redundancy, Pearl achieves average speedups of 82.73x for value-flow analysis and 155.26x for alias analysis over the standard CFL-reachability algorithm. The comparison with Pocr, a state-of-the-art CFL-reachability solver, shows that Pearl runs 10.1x (up to 29.2x) and 2.37x (up to 4.22x) faster on average respectively for value-flow analysis and alias analysis with less consumed memory.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{ShiLSLLX23,
  title = {Two Birds with One Stone: Multi-Derivation for Fast Context-Free Language Reachability Analysis},
  author = {Chenghang Shi and Haofeng Li and Yulei Sui and Jie Lu and Lian Li and Jingling Xue},
  booktitle = {ASE},
  year = {2023},
  doi = {10.1109/ase56229.2023.00118}
}