基于机器学习的源程序自动标注方法

2021-09-15 11:20:00吴军华
计算机应用与软件 2021年9期

王 瑞 吴军华

(南京工业大学计算机科学与技术学院 江苏 南京 211816)

0 引 言

随着互联网的高速发展,软件开发也越来越火热,并伴随出现了大量开源代码库[1-2]。拥有完善注释的源程序能够提高软件系统的可维护性[2-4],加快软件开发速度。但是当前情况下仅有不到20%的程序有对应的注释,所以急需开发一种自动生成功能描述性注释的方法。

文献[5]提出一种对程序源代码自动生成功能描述性注释的方法,通过在GRU神经网络中增加一个选择门,从特征向量中选择有关于功能且与当前状态相关的特征进行注释,本质上是一种翻译任务。文献[6]提出一种基于模板的生成注释方法,通过模板对程序和注释进行处理,遇到不符合模板的代码和注释则生成的注释效果较差,适用范围太窄。文献[7]提出一种基于数据挖掘的源代码注释自动生成方法,依据文中描述函数注释关键特性的两种提取规则自动生成函数整体注释,但该方法仅限于自动生成Linux内核函数的注释,普遍性不强。文献[8]提出一种使用神经网络训练数据并且利用完全驱动来生成注释的方法,对C语言代码片段和SQL查询语句进行自动注释,这种方法是将源代码当成了普通的文本,没有提取任何程序设计语言所独有的特征与特点,在源代码特征提取方面存在缺陷。针对目前存在的问题,本文采用基于LSTM-GRU网络的机器学习编码解码模型,对程序进行自动注释。

1 方法简介

本文将Java程序作为研究对象。……

登录APP查看全文