paperbot · PL 论文追踪

全部论文 待读 收藏

P2 ITER: Iterative Neural Repair for Multi-Location Patches

ITER:面向多位置补丁的迭代式神经修复
ICSE Proceedings of the IEEE/ACM 46th International Conference on Software Engineering2024匹配度 3/10 · 论文属于神经程序修复(APR),虽处于 PL+ML 交叉领域,但核心是补丁生成而非用户关注的静态分析、形式化验证或 Agentic/LLM 程序分析;也未涉及浮点程序分析或贝叶斯程序分析。引用 42 inbox
He Ye, Martin Monperrus
crossref: 2026-09-12

AI 速览

一句话:提出迭代式神经修复范式 ITER,通过持续改进部分补丁实现单/多位置修复,在 Defects4J 2.0 上修复 15.5% 的 bug。

自动程序修复(APR)尤其是基于神经网络的方法已取得进展,但绝大多数 APR 工具产生的补丁局限于单一位置;神经修复生成的补丁大多无法编译,少数不可编译补丁方向正确,其根本问题在于忽略了部分补丁的潜力。本文提出迭代式修复范式 ITER,基于“不断改进部分补丁直至其成为看似合理且正确的补丁”这一理念:首先迭代改进单位置部分补丁,修复编译错误并精炼已生成代码;其次借助故障定位重执行,迭代改进部分补丁以构造多位置补丁。ITER 基于成熟的深度神经网络与代码表示在 Java 上实现,并在 Defects4J 2.0 的 10 个开源项目的 476 个 bug 上评估,成功修复 15.5%,其中包括 9 个被唯一修复的多位置 bug。

问题
现有 APR 与神经修复工具产生的补丁大多局限于单一位置,且常常无法编译,未能利用部分补丁中蕴含的修复潜力。
方法
提出 ITER 迭代修复范式:先迭代修复单位置部分补丁的编译错误并精炼代码,再通过故障定位重执行迭代构造多位置补丁;在 Java 上基于深度神经网络与代码表示实现。
评估
在 Defects4J 2.0 中 10 个开源项目的 476 个真实 bug 上进行评估,ITER 修复了 15.5% 的 bug,包含 9 个唯一修复的多位置 bug。
原文摘要(Abstract)

Automated program repair (APR) has achieved promising results, especially using neural networks. Yet, the overwhelming majority of patches produced by APR tools are confined to one single location. When looking at the patches produced with neural repair, most of them fail to compile, while a few uncompilable ones go in the right direction. In both cases, the fundamental problem is to ignore the potential of partial patches. In this paper, we propose an iterative program repair paradigm called ITER founded on the concept of improving partial patches until they become plausible and correct. First, ITER iteratively improves partial single-location patches by fixing compilation errors and further refining the previously generated code. Second, ITER iteratively improves partial patches to construct multi-location patches, with fault localization re-execution. ITER is implemented for Java based on battle-proven deep neural networks and code representation. ITER is evaluated on 476 bugs from 10 open-source projects in Defects4J 2.0. ITER succeeds in repairing 15.5% of them, including 9 uniquely repaired multi-location bugs.

链接与引用

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

BibTeX
@inproceedings{paperbot11406,
  title = {ITER: Iterative Neural Repair for Multi-Location Patches},
  author = {He Ye and Martin Monperrus},
  booktitle = {ICSE},
  year = {2024},
  doi = {10.1145/3597503.3623337}
}