中文

编码版本历史上下文以改进代码表示

软件工程 2024-02-07 v1

摘要

随着生成源代码的AI工具呈指数级增长,理解软件变得至关重要。当开发人员理解程序时,他们可能会参考额外的上下文来查找信息,例如程序文档或历史代码版本。因此,我们认为编码这些额外的上下文信息也可能有利于深度学习的代码表示。最近的论文将上下文数据(例如调用层次结构)纳入向量表示中,以解决程序理解问题。这激励了进一步研究探索额外的上下文,例如版本历史,以增强模型对程序的理解。也就是说,来自版本历史的见解能够识别代码随时间演化的模式、重复出现的问题以及过去解决方案的有效性。我们的论文提供了初步证据,表明编码来自版本历史的上下文信息在预测代码克隆和执行代码分类方面具有潜在益处。我们使用两个代表性的深度学习模型ASTNN和CodeBERT进行实验,以研究将额外上下文与不同聚合方式结合是否有利于下游活动。实验结果证实了在所有场景中将版本历史纳入源代码表示的积极影响;然而,为了确保该技术表现一致,我们需要在更大的代码库上使用不同的上下文组合、聚合方式和模型进行全面的研究。因此,我们提出了一项研究议程,旨在探索编码额外上下文的各个方面,以改进代码表示及其在特定情况下的最优利用。

关键词

引用

@article{arxiv.2402.03773,
  title  = {Encoding Version History Context for Better Code Representation},
  author = {Huy Nguyen and Christoph Treude and Patanamon Thongtanunam},
  journal= {arXiv preprint arXiv:2402.03773},
  year   = {2024}
}

备注

5 pages (plus 1 for references), 1 figure, 3 tables, paper was accepted to 21st International Conference on Mining Software Repositories (MSR 2024)