基于搜索-生成-修改的自动化代码编辑
软件工程
2024-02-27 v2 编程语言
摘要
代码编辑在演进的软件开发中至关重要。已有许多自动化代码编辑工具被提出,它们利用了基于信息检索的技术以及基于机器学习的代码生成与代码编辑模型。每种技术都有其自身的优势与风险,且常结合使用以互补长短。本文提出一种混合方法,通过利用代码搜索、生成与修改的能力来更好地合成代码编辑。我们的关键观察是,通过搜索与检索获得的补丁即使不完美,也能为代码生成模型提供有益指导。然而,代码生成模型产生的检索引导补丁仍可能与预期补丁相差几个词元。此类生成的补丁可经轻微修改以得到预期补丁。SARGAM是一种新颖工具,旨在模拟真实开发者的代码编辑行为。给定原始代码版本,开发者可能搜索相关补丁、生成或编写代码,然后修改所生成代码以适配正确上下文。我们对SARGAM在编辑生成上的评估显示出相对于当前最先进技术的优越性能。SARGAM在自动化程序修复任务上也表现出极佳有效性。
引用
@article{arxiv.2306.06490,
title = {Automated Code Editing with Search-Generate-Modify},
author = {Changshu Liu and Pelin Cetin and Yogesh Patodia and Saikat Chakraborty and Yangruibo Ding and Baishakhi Ray},
journal= {arXiv preprint arXiv:2306.06490},
year = {2024}
}
备注
12 pages, 10 figures