基于语句的记忆用于神经源代码摘要

摘要:源代码摘要是编写源代码行为的自然语言描述的任务。代码摘要是程序员软件文档的基础。代码的简短描述有助于程序员快速理解程序,而无需阅读代码本身。最近,基于神经网络的源代码摘要已经成为自动化代码摘要技术研究的前沿。到目前为止,最受欢迎的摘要目标是程序子例程。简而言之,这个想法是使用从代码存储库中提取的大量子例程示例来训练编码器-解码器神经网络架构。编码器代表代码,解码器代表摘要。然而,大多数目前的方法试图将子例程作为一个单元来处理。例如,通过将整个子例程输入到Transformer或基于RNN的编码器。但代码行为往往取决于语句之间的流程。通常,动态分析可以揭示出这种流程,但在大型数据集中对数十万个示例进行动态分析是不可行的。在本文中,我们提出了一种基于语句的内存编码器,它在训练过程中学习流程的重要元素,从而实现了基于语句的子例程表示,而无需进行动态分析。我们为代码摘要实现了我们的编码器,并展示了与最先进方法相比的显着改进。

作者:Aakash Bansal, Siyuan Jiang, Sakib Haque, and Collin McMillan

论文ID:2307.11709

分类:Artificial Intelligence

分类简称:cs.AI

提交时间:2023-07-24

PDF 下载: 英文版 中文版pdf翻译中