计算机科学 > 软件工程
[提交于 2025年1月9日
]
标题: 基于深度学习的代码补全:上下文信息对性能的影响
标题: Deep Learning-based Code Completion: On the Impact on Performance of Contextual Information
摘要: 代码补全旨在通过向开发人员推荐他们可能输入的下一个标记来加快代码编写速度。 深度学习(DL)模型通过重新定义这些代码助手能够完成的任务,推动了代码补全的边界:我们从预测少量代码标记转变为自动生成整个函数。 影响基于DL的代码补全技术性能的一个重要因素是作为输入提供的上下文。 我们所说的“上下文”指的是模型对要完成的代码所了解的内容。 在一个简单的场景中,DL模型可能会被提供一个部分实现的函数以完成。 在这种情况下,上下文由不完整的函数表示,基于此,模型必须生成一个预测。 然而,也可以扩展这种上下文以包含其他信息,例如包含要完成函数的整个源代码文件,这可能有助于提高预测性能。 在本研究中,我们进行了一项实证研究,调查基于DL的代码补全技术的性能如何受到不同上下文的影响。 我们测试了8种上下文及其组合。 这些上下文包括:(i) 编码上下文,包含从调用代码补全的代码库中提取的信息(例如,与要完成的代码组件在结构上相关的代码组件);(ii) 过程上下文,包含旨在描绘代码补全任务触发时项目当前状态的信息(例如,与要完成的代码相关的开放问题的文本表示);以及 (iii) 开发者上下文,捕捉调用代码补全的开发者的信息(例如,常用的API)。 我们的结果表明,额外的上下文信息可以提高基于DL的代码补全的性能,在正确预测方面相对提升高达+22%。
文献和引用工具
与本文相关的代码,数据和媒体
alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)
演示
推荐器和搜索工具
arXivLabs:与社区合作伙伴的实验项目
arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。
与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。
有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.