一句话:提出持续学习式跨语言程序修复框架 CIRCLE,用单一模型修复多种语言并适应新出现的修复需求。
自动程序修复(APR)旨在以更少的人工调试代价修复缺陷代码,对提升软件可靠性与开发效率至关重要。近期基于深度学习的 APR,尤其是神经机器翻译(NMT)方法取得了显著进展,但作者观察到现有 DL-based APR 至少存在两个严重缺陷:(1)多数模型只能为单一编程语言生成补丁,要修复多种语言就必须构建并训练大量模型;(2)多数模型采用离线开发方式,当出现新的修复需求时无法发挥作用。为此,论文提出 CIRCLE,将跨语言程序修复视为持续学习任务,使单一修复系统能够在多种编程语言间共享并迁移修复能力,同时持续吸收新到来的需求,从而减少重复训练开销并提升在线可用性。
Automatic Program Repair (APR) aims at fixing buggy source code with less manual debugging efforts, which plays a vital role in improving software reliability and development productivity. Recent APR works have achieved remarkable progress via applying deep learning (DL), particularly neural machine translation (NMT) techniques. However, we observe that existing DL-based APR models suffer from at least two severe drawbacks: (1) Most of them can only generate patches for a single programming language, as a result, to repair multiple languages, we have to build and train many repairing models. (2) Most of them are developed offline. Therefore, they won’t function when there are new-coming requirements.
@inproceedings{paperbot7435,
title = {CIRCLE: continual repair across programming languages},
author = {Wei Yuan and Quanjun Zhang and Tieke He and Chunrong Fang and Nguyen Quoc Viet Hung and Xiaodong Hao and Hongzhi Yin},
booktitle = {ISSTA},
year = {2022},
doi = {10.1145/3533767.3534219}
}