Automatic Program Repair via Learning Edits on Sequence Code Property Graph.

International Conference on Parallel and Distributed Systems(2023)

引用 0|浏览2
暂无评分
摘要
In recent years, deep learning has been widely applied in the research of automatic program repair, namely, learning-based program repair, which treats the program repair task as either a neural machine translation problem or a transformation toward the abstract syntax tree of the program. However, all existing learning-based program repair solutions have not adequately modeled the deep semantic information of the programs. To be specific, those solutions based on neural machine translation do not involve any semantic information of the programs at all, while other solutions based on abstract syntax tree transformations also do not involve information such as control flow and data flow. Additionally, the neural networks they use are also unable to sufficiently learn the semantic information. As a result, they cannot fix some bugs that involve semantic information.In this paper, we propose a new learning-based program repair approach called SGEPR. SGEPR uses a novel intermediate representation named sequence code property graph (SCPG) to model program semantic information, which can cover multiple types of semantic information in the program. SGEPR then utilizes a graph neural network based on the attention mechanism to learn the semantic information within SCPG. Finally, a well-designed prediction network is employed to generate the repair patches for the buggy program. To evaluate the performance of SGEPR, we conducted comparative experiments on a real-world dataset and the results show that SGEPR can achieve a top-3 accuracy of 56.85%, which is 15.69% higher than the state-of-the-art learning-based program repair method.
更多
查看译文
关键词
automatic program repair,program representation,graph neural network
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要