当前位置: 首页 > 专利查询>中山大学专利>正文

一种源代码注释生成方法、装置、存储介质及计算机设备制造方法及图纸

技术编号:38841490 阅读:15 留言:0更新日期:2023-09-17 09:55
本申请提供的一种源代码注释生成方法、装置、存储介质及计算机设备,在对源代码进行自动注释时,可以先获取待注释源代码,以及该待注释源代码的字节码,这里的字节码可以标识功能作用相同但实现方式不同的源代码,接着可以基于预设的词嵌入矩阵分别确定待注释源代码的文本词向量和字节码的字节码词向量,此处词向量可以捕捉待注释源代码各个字符串之间的语义和语法信息,在确定文本词向量和字节码词向量后,可以将文本词向量和字节码词向量进行拼接后形成拼接词向量,并利用拼接词向量生成待注释源代码的注释结果,这样可以在对功能作用相同但实现方式不同的代码生成注释时进行约束,避免出现混淆和歧义,从而提高注释结果的准确性。的准确性。的准确性。

【技术实现步骤摘要】
一种源代码注释生成方法、装置、存储介质及计算机设备


[0001]本申请涉及数据编译
,尤其涉及一种源代码注释生成方法、装置、存储介质及计算机设备。

技术介绍

[0002]代码注释是一种自然语言,它描述了一段代码的特定行为和目的,可以大大减少开发人员理解源代码以及改进源代码时的开发时间和维护效率,被广泛应用于程序理解和软件维护中。近年来,随着人工智能技术的发展,开发人员大都采用神经网络模型来学习源代码和注释之间的对应关系,从而协助开发人员在开发过程中对源代码进行自动注释。
[0003]为了给特定的源代码片段生成比较符合源代码结构特征的注释,开发人员大都致力于从源代码中挖掘结构信息以生成注释,该结构信息通常表示为一个表征源代码结构的抽象语法树(AST),但由于代码的实现方法不同,可能会导致AST差异非常大,单纯引入代码的AST可能还无法充分表示代码的结构特征,进而使得现有的注释方法在对功能作用相同但实现方式不同的代码生成注释时差异较大。

技术实现思路

[0004]本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中的注释方法在对功能作用相同但实现方式不同的代码生成注释时差异较大的技术缺陷。
[0005]本申请提供了一种源代码注释生成方法,其特征在于,所述方法包括:
[0006]获取待注释源代码,以及所述待注释源代码的字节码;
[0007]基于第一预设词嵌入矩阵确定所述待注释源代码的文本词向量,以及基于第二预设词嵌入矩阵确定所述字节码的字节码词向量;
[0008]将所述文本词向量和所述字节码词向量进行拼接后形成拼接词向量,并利用所述拼接词向量生成所述待注释源代码的注释结果。
[0009]可选地,所述基于第二预设词嵌入矩阵确定所述字节码的字节码词向量,包括:
[0010]将所述字节码解析为三地址代码,并基于所述三地址代码构建得到控制流图;
[0011]对所述控制流图进行序列化,得到所述控制流图的序列文本;
[0012]基于第二预设词嵌入矩阵将所述序列文本转换为字节码词向量。
[0013]可选地,所述将所述字节码解析为三地址代码,包括:
[0014]对所述字节码进行反汇编,得到指令序列,所述指令序列包括多个指令,每一指令对应一个操作码和多个操作数;
[0015]采用解析器依次提取所述指令序列中的各个指令的操作码和操作数,并根据各个指令的操作码确定对应的代码格式,以及,基于各个代码格式将相应的操作数转换为三地址代码。
[0016]可选地,所述基于所述三地址代码构建得到控制流图,包括:
[0017]识别所述三地址代码中包含的至少一个标签指令,并确定每一标签指令在所述三
地址代码中的标签位置;
[0018]根据各个标签位置对所述三地址代码进行划分,得到连续的多个基本块;
[0019]读取各个基本块之间的跳转关系,并按照各个基本块之间的跳转关系构建控制流图。
[0020]可选地,所述基于第二预设词嵌入矩阵将所述序列文本转换为字节码词向量,包括:
[0021]对所述序列文本进行分词,得到至少一个分词文本;
[0022]将每一分词文本映射至第二预设词嵌入矩阵中,得到每一分词文本对应的词嵌入向量;
[0023]基于预设向量长度将各个词嵌入向量合并为字节码词向量。
[0024]可选地,其特征在于,所述利用所述拼接词向量生成所述待注释源代码的注释结果,包括:
[0025]将所述拼接词向量输入至预先配置的目标代码注释模型中,所述目标代码注释模型包括编码器和解码器;
[0026]将所述拼接词向量输入至所述编码器中,通过所述编码器提取所述拼接词向量的隐藏特征,输出得到隐藏状态向量;
[0027]将所述隐藏状态向量输入至所述解码器中,得到所述解码器输出的所述待注释源代码的注释结果。
[0028]可选地,所述目标代码注释模型的训练过程,包括:
[0029]获取包含真实注释结果的样本源代码,以及与所述样本源代码对应的文本词向量和字节码词向量;
[0030]将所述文本词向量和所述字节码词向量拼接后输入预设的初始代码注释模型,得到所述初始代码注释模型对所述样本源代码输出的预测注释结果;
[0031]以所述预测注释结果趋近于所述样本源代码的真实注释结果为目标,对所述初始代码注释模型进行迭代训练,直至所述初始代码注释模型满足预设训练结束条件,得到目标代码注释模型。
[0032]本申请还提供了一种源代码注释生成装置,包括:
[0033]数据获取模块,用于获取待注释源代码,以及所述待注释源代码的字节码;
[0034]词向量确定模块,用于基于第一预设词嵌入矩阵确定所述待注释源代码的文本词向量,以及基于第二预设词嵌入矩阵确定所述字节码的字节码词向量;
[0035]注释生成模块,用于将所述文本词向量和所述字节码词向量进行拼接后形成拼接词向量,并利用所述拼接词向量生成所述待注释源代码的注释结果。
[0036]本申请还提供了一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述源代码注释生成方法的步骤。
[0037]本申请还提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
[0038]所述存储器中存储有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,执行如上述实施例中任一项所述源代码注释生成方法的步骤。
[0039]从以上技术方案可以看出,本申请实施例具有以下优点:
[0040]本申请提供的一种源代码注释生成方法、装置、存储介质及计算机设备,在对源代码进行自动注释时,可以先获取待注释源代码,以及与该待注释源代码的字节码,其中字节码可以标识功能作用相同但实现方式不同的源代码,接着可以基于第一预设词嵌入矩阵确定待注释源代码的文本词向量,以及基于第二预设词嵌入矩阵确定字节码的字节码词向量,此处词向量可以捕捉待注释源代码各个字符串之间的语义和语法信息,从而更好地表示字符串的含义和上下文信息,在确定文本词向量和字节码词向量后,可以将文本词向量和字节码词向量进行拼接后形成拼接词向量,并利用拼接词向量生成待注释源代码的注释结果,这样可以在对功能作用相同但实现方式不同的代码生成注释时进行约束,避免出现混淆和歧义,从而提高注释结果的准确性。
附图说明
[0041]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0042]图1为本申请实施例提供的一种源代码注释生成方法的流程示意图;
[0043]图2为本申请实施例提供地一种控制流图序列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种源代码注释生成方法,其特征在于,所述方法包括:获取待注释源代码,以及所述待注释源代码的字节码;基于第一预设词嵌入矩阵确定所述待注释源代码的文本词向量,以及基于第二预设词嵌入矩阵确定所述字节码的字节码词向量;将所述文本词向量和所述字节码词向量进行拼接后形成拼接词向量,并利用所述拼接词向量生成所述待注释源代码的注释结果。2.根据权利要求1所述的源代码注释生成方法,其特征在于,所述基于第二预设词嵌入矩阵确定所述字节码的字节码词向量,包括:将所述字节码解析为三地址代码,并基于所述三地址代码构建得到控制流图;对所述控制流图进行序列化,得到所述控制流图的序列文本;基于第二预设词嵌入矩阵将所述序列文本转换为字节码词向量。3.根据权利要求2所述的源代码注释生成方法,其特征在于,所述将所述字节码解析为三地址代码,包括:对所述字节码进行反汇编,得到指令序列,所述指令序列包括多个指令,每一指令对应一个操作码和多个操作数;采用解析器依次提取所述指令序列中的各个指令的操作码和操作数,并根据各个指令的操作码确定对应的代码格式,以及,基于各个代码格式将相应的操作数转换为三地址代码。4.根据权利要求2所述的源代码注释生成方法,其特征在于,所述基于所述三地址代码构建得到控制流图,包括:识别所述三地址代码中包含的至少一个标签指令,并确定每一标签指令在所述三地址代码中的标签位置;根据各个标签位置对所述三地址代码进行划分,得到连续的多个基本块;读取各个基本块之间的跳转关系,并按照各个基本块之间的跳转关系构建控制流图。5.根据权利要求2所述的源代码注释生成方法,其特征在于,所述基于第二预设词嵌入矩阵将所述序列文本转换为字节码词向量,包括:对所述序列文本进行分词,得到至少一个分词文本;将每一分词文本映射至第二预设词嵌入矩阵中,得到每一分词文本对应的词嵌入向量;基于预设向量长度将各个词嵌入向量合并为字节码词向量。6.根据权利要求1

5中...

【专利技术属性】
技术研发人员:黄袁黄进波陈湘萍郑子彬
申请(专利权)人:中山大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1