paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Rete: Learning Namespace Representation for Program Repair

Rete:为程序修复学习命名空间表示
ICSE 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)2023匹配度 4/10 · 该论文属于机器学习辅助程序修复,利用 def-use 链学习变量命名空间表示,与 PL 和 ML 的交叉相关;但既未涉及静态分析/形式化验证,也未使用 LLM/Agent,更不涉及浮点程序分析或贝叶斯程序分析,因此与用户画像的核心方向匹配有限。引用 13 inbox
Nikhil Parasaram, Earl T. Barr, Sergey Mechtaev
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 Rete,通过学习项目无关的变量命名空间表示并联合排序变量与补丁模板,提升自动程序修复的效果。

自动程序修复的核心难题是在庞大的候选补丁空间中定位正确补丁。真实程序定义的大型变量命名空间会显著加剧搜索空间爆炸,而现有修复方法忽略程序命名空间信息,导致效率低下且容易过拟合测试。为此,论文提出 Rete:它使用神经网络提取项目无关的变量 CDU 链(即带控制流的定义-使用链)信息,并据此联合对变量与容纳变量的补丁模板进行排序,从而在搜索空间中导航。作者在从 ManyBugs 和 BugsInPy 两个数据集抽取的 142 个缺陷上评估 Rete,结果表明它新生成 6 个正确补丁,修复了此前工具未能修复的缺陷,相较现有最优方法分别提升 31% 和 59%。

问题
自动程序修复需在巨大的候选补丁空间中搜索正确补丁;现有方法忽略程序命名空间信息,导致搜索效率低且容易过拟合测试。
方法
Rete 使用神经网络学习项目无关的变量 CDU 链(带控制流的定义-使用链)表示,并联合对变量和补丁模板进行排序以导航补丁搜索空间。
评估
在 ManyBugs 与 BugsInPy 两个数据集的 142 个缺陷上与现有方法对比,Rete 新修复了 6 个此前工具无法修复的缺陷,较最优方法分别提升 31% 和 59%。
原文摘要(Abstract)

A key challenge of automated program repair is finding correct patches in the vast search space of candidate patches. Real-world programs define large namespaces of variables that considerably contributes to the search space explosion. Existing program repair approaches neglect information about the program namespace, which makes them inefficient and increases the chance of test-overfitting. We propose Rete, a new program repair technique, that learns project-independent information about program namespace and uses it to navigate the search space of patches. Rete uses a neural network to extract project-independent information about variable CDU chains, def-use chains augmented with control flow. Then, it ranks patches by jointly ranking variables and the patch templates into which the variables are inserted. We evaluated Rete on 142 bugs extracted from two datasets, ManyBugs and BugsInPy. Our experiments demonstrate that ReTe generates six new correct patches that fix bugs that previous tools did not repair, an improvement of 31% and 59% over the existing state of the art.

链接与引用

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

BibTeX
@inproceedings{ParasaramBM23,
  title = {Rete: Learning Namespace Representation for Program Repair},
  author = {Nikhil Parasaram and Earl T. Barr and Sergey Mechtaev},
  booktitle = {ICSE},
  year = {2023},
  doi = {10.1109/icse48619.2023.00112}
}