【技术实现步骤摘要】
本专利技术涉及代码注释生成,具体为一种基于语法优化和上下文增强的代码注释生成的方法。
技术介绍
1、软件代码结构的繁复性以及软件项目的多变性,致使代码注释的重要性日益凸显。高质量的代码注释支持软件的高可维护性和高可用性。有研究工作表明,开发人员平均需要花费59%的时间在程序理解上,这可以证明软件代码注释对程序理解的重要性。然而,手工编写代码注释需要花费大量时间,不仅编写效率不高,编写注释的质量参差不齐,而且手工编写注释的正确性难以保证。由此可见自动代码注释生成技术的重要性。自动代码注释生成技术是计算机科学与自然语言处理(nlp)的交叉应用,它将代码分析、自然语言理解和文本生成技术相结合,以提高代码的可读性、可理解性和可维护性。
2、深度学习技术的出现极大地推动了程序理解领域的发展,使得代码摘要的研究主要集中在编码器-解码器结构上。当前,代码表示问题已成为研究的焦点。传统的将代码表示为序列的方法在处理长序列时效果不佳,而采用抽象语法树(ast)虽然能保留结构信息,但由于ast结构庞大且层次深,直接输入模型会消耗大量资源,并可能
...【技术保护点】
1.一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,包括具体步骤如下:
2.根据权利要求1所述的一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,所述S300中的Code-Token模态生成流程如下:将函数代码中的驼峰词按驼峰命名规则进行切割,接着对函数代码中的蛇形词按蛇形命名规则进行切割,而后对代码进行规范化操作,规范化操作包括:在函数代码的单词之间、单词和标点符号之间,标点符号之间添加空格,确保单词和标点符号被视为独立的实体,之后,使用经上述处理后的代码构建代码词库,代码词库由“索引键-代码值”构成,而后将代码词库存储到cod
...【技术特征摘要】
1.一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,包括具体步骤如下:
2.根据权利要求1所述的一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,所述s300中的code-token模态生成流程如下:将函数代码中的驼峰词按驼峰命名规则进行切割,接着对函数代码中的蛇形词按蛇形命名规则进行切割,而后对代码进行规范化操作,规范化操作包括:在函数代码的单词之间、单词和标点符号之间,标点符号之间添加空格,确保单词和标点符号被视为独立的实体,之后,使用经上述处理后的代码构建代码词库,代码词库由“索引键-代码值”构成,而后将代码词库存储到code_vocab.pk文件中,之后,构建一个代码标记嵌入层,将预处理后的代码通过代码词库映射得到代码向量vcode-token,接着将向量vcode-token通过代码词汇嵌入层后得到code-token模态,记为modalcode-token。
3.根据权利要求1所述的一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,所述s300中的vfo-ast模态生成流程如下:使用抽象语法树生成工具从函数代码生成相应的ast,得到的ast中每个节点中携带的信息有:节点类型type、节点值value、节点的子树集合children。
4.根据权利要求1所述的一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,所述s300中的context-pdg模态生成流程如下:使用程序依赖图生成工具从函数代码生成对应的pdg,记为原始pdg,得到的原始pdg中每个节点中携带的信息有:节点类型type、节点值value、节点的子树集合children,pdg中每条边携带的信息有:边属性type、边的起始节点、边的终止节点。
5.根据权利要求1所述的一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,所述s400的具体流程如下:
6.根据权利要求1所述的一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,所述s500中的构建基于gru的编码器gru_encode...
【专利技术属性】
技术研发人员:黄剑锋,郑靖轩,苏庆,杨智程,
申请(专利权)人:广东工业大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。