关于源代码编辑的多模态学习
软件工程
2021-08-17 v1 机器学习
编程语言
摘要
近年来,神经机器翻译器(NMT)在自动编辑源代码方面展现出潜力。典型的基于 NMT 的代码编辑器仅将需要更改的代码作为输入,并向开发者提供一份排序后的补丁代码列表以供选择——其中正确的补丁未必总是位于列表顶端。虽然基于 NMT 的代码编辑系统能生成大量合理的补丁,但正确的补丁取决于开发者的需求,且常常取决于补丁所应用的上下文。因此,若开发者提供一些提示(使用自然语言)或提供补丁上下文,NMT 模型便可从中受益。作为概念验证,在本研究中,我们利用三种信息模态:编辑位置、编辑代码上下文、提交信息(作为开发者自然语言提示的代理),以通过 NMT 模型自动生成编辑。为此,我们构建了 MODIT,一个基于多模态 NMT 的代码编辑引擎。通过深入调研与分析,我们表明,将开发者提示作为一种输入模态能够缩小补丁的搜索空间,并在生成 top-1 位置正确补丁代码方面优于最先进的模型。
引用
@article{arxiv.2108.06645,
title = {On Multi-Modal Learning of Editing Source Code},
author = {Saikat Chakraborty and Baishakhi Ray},
journal= {arXiv preprint arXiv:2108.06645},
year = {2021}
}
备注
Accepted for publication in 36th IEEE/ACM conference on Automated Software Engineering (ASE-2021)