paperbot · PL 论文追踪

全部论文 待读 收藏

P0 On Abstraction Refinement for Bayesian Program Analysis

论贝叶斯程序分析的抽象精化
OOPSLA 9(OOPSLA2)2025匹配度 8/10 · 论文直接研究贝叶斯程序分析中的抽象选择与精化问题,属于研究画像明确列出的“贝叶斯程序分析”核心子方向;虽未涉及 LLM/Agent 交叉或浮点程序分析,但在该子方向上兼具理论创新与实现验证。引用 3 inbox
Yuanfeng Shi, Yifan Zhang, Xin Zhang
crossref: 2026-09-10

AI 速览

一句话:提出基于条件独立性的抽象精化方法,用反例引导按需搜索抽象,提升贝叶斯程序分析精度。

贝叶斯程序分析将传统程序分析中的逻辑演绎转化为贝叶斯推断,以便利用外部信息提高分析精度。其关键挑战在于如何选择程序抽象,从而有效泛化外部信息。已有方法通过在训练程序上学习选择策略应对,但受学习本质和训练集选择影响,在新程序上可能次优。本文借鉴反例引导精化框架,提出按需搜索抽象的方案。核心创新是应用条件独立理论精化抽象,以去除错误的泛化。作者将方法实例化于贝叶斯线程逃逸分析和贝叶斯数据竞争分析,实验表明其显著提升了分析性能。

问题
贝叶斯程序分析中,如何选择程序抽象以有效利用外部信息,并避免在新程序上因学习策略而泛化不佳。
方法
借鉴反例引导精化框架,按需搜索抽象,并利用条件独立理论精化抽象以消除错误泛化。
评估
在贝叶斯线程逃逸分析与贝叶斯数据竞争分析上实例化,实验显示显著提升分析性能。
原文摘要(Abstract)

Bayesian program analysis is a systematic approach to learn from external information for better accuracy by converting logical deduction in conventional program analysis into Bayesian inference. A key challenge in Bayesian program analysis is how to select program abstractions to effectively generalize from external information. A recent approach addresses this challenge by learning a selection policy on training programs but may result in sub-optimal performance on new programs due to its learning nature and when the training set selection is not ideal. To address this problem, we propose an approach that is inspired by the framework of counterexample-guided refinement to search for an abstraction on the fly. Our key innovation is to apply the theory of conditional independence to refine the abstraction so that incorrect generalizations can be removed. To demonstrate the effectiveness of our approach, we have instantiated it on a Bayesian thread-escape analysis and a Bayesian datarace analysis and shown that it significantly improves the performance of the analyses.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2999,
  title = {On Abstraction Refinement for Bayesian Program Analysis},
  author = {Yuanfeng Shi and Yifan Zhang and Xin Zhang},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {9},
  number = {OOPSLA2},
  year = {2025},
  doi = {10.1145/3763166}
}