基于执行反向传播的神经程序修复
软件工程
2022-04-12 v3
摘要
神经机器翻译(NMT)架构在自动程序修复方面取得了有前景的结果。然而,它们的局限性在于生成低质量补丁(例如,不可编译的补丁)。这是因为现有工作仅基于字符和词元优化纯粹的语法损失函数,而未在神经网络权重优化过程中融入程序特定信息。在本文中,我们提出一种称为 RewardRepair 的新型程序修复模型。RewardRepair 的核心新颖之处在于利用基于程序编译和测试执行信息的损失函数改进基于 NMT 的程序修复,奖励网络产生可编译且不过拟合的补丁。我们进行了若干实验来评估 RewardRepair,表明使用编译和测试执行结果来优化底层神经修复模型是可行且有效的。RewardRepair 在四个基准上正确修复了 207 个缺陷。我们报告了文献中首次修复的 121 个缺陷的修复成功情况。此外,RewardRepair 生成了多达 45.3% 的可编译补丁,优于最先进方法的 39%。
引用
@article{arxiv.2105.04123,
title = {Neural Program Repair with Execution-based Backpropagation},
author = {He Ye and Matias Martinez and Martin Monperrus},
journal= {arXiv preprint arXiv:2105.04123},
year = {2022}
}