paperbot · PL 论文追踪

全部论文 待读 收藏

P2 A Machine-Learning Algorithm with Disjunctive Model for Data-Driven Program Analysis

面向数据驱动程序分析的带析取模型的机器学习算法
TOPLAS 41(2)2019匹配度 4/10 · 论文属于机器学习驱动的静态程序分析,与“AI→PL”方向有间接关联,但核心方法是传统布尔模型学习,不涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,因此与当前研究画像的核心关注点匹配度有限。引用 24 inbox
Minseok Jeon, Sehun Jeong, Sungdeok Cha, Hakjoo Oh
crossref: 2026-09-10

AI 速览

一句话:提出带析取布尔模型的机器学习算法,自动学习数据驱动程序分析策略,显著优于手工调优。

静态程序分析通常依赖大量手工调参来获得良好的精度与效率,数据驱动分析试图通过机器学习自动调整分析,但现有方法多采用简单学习模型,难以刻画复杂尤其是析取性的程序性质。本文提出一种面向数据驱动程序分析的析取模型及相应学习算法。该模型以原子特征上的布尔公式表示分析策略,可表达程序性质的非线性组合。针对布尔公式搜索空间巨大、暴力枚举不可行的问题,作者提出一种逐步贪心算法以高效学习合适的布尔公式集合。作者在 Java 上下文敏感指针分析和 C 流敏感区间分析两个静态分析器上评估该技术,实验表明其自动化方法显著提升了当前最优技术(包括人类专家手工调优的方法)的性能,并展现了有效性与通用性。

问题
现有数据驱动程序分析的学习模型过于简单,无法捕捉复杂的析取性程序性质,限制了分析效果。
方法
提出基于原子特征布尔公式的析取模型,并用逐步贪心算法高效学习模型参数与公式集合。
评估
在 Java 上下文敏感指针分析与 C 流敏感区间分析两个静态分析器上实验,并与最先进及手工调优方法比较。
原文摘要(Abstract)

We present a new machine-learning algorithm with disjunctive model for data-driven program analysis. One major challenge in static program analysis is a substantial amount of manual effort required for tuning the analysis performance. Recently, data-driven program analysis has emerged to address this challenge by automatically adjusting the analysis based on data through a learning algorithm. Although this new approach has proven promising for various program analysis tasks, its effectiveness has been limited due to simple-minded learning models and algorithms that are unable to capture sophisticated, in particular disjunctive, program properties. To overcome this shortcoming, this article presents a new disjunctive model for data-driven program analysis as well as a learning algorithm to find the model parameters. Our model uses Boolean formulas over atomic features and therefore is able to express nonlinear combinations of program properties. A key technical challenge is to efficiently determine a set of good Boolean formulas, as brute-force search would simply be impractical. We present a stepwise and greedy algorithm that efficiently learns Boolean formulas. We show the effectiveness and generality of our algorithm with two static analyzers: context-sensitive points-to analysis for Java and flow-sensitive interval analysis for C. Experimental results show that our automated technique significantly improves the performance of the state-of-the-art techniques including ones hand-crafted by human experts.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot709,
  title = {A Machine-Learning Algorithm with Disjunctive Model for Data-Driven Program Analysis},
  author = {Minseok Jeon and Sehun Jeong and Sungdeok Cha and Hakjoo Oh},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {41},
  number = {2},
  year = {2019},
  doi = {10.1145/3293607}
}