一种基于语法优化和上下文增强的代码注释生成的方法技术

技术编号:43369455 阅读:21 留言:0更新日期:2024-11-19 17:50
本发明专利技术公开的属于代码注释生成技术领域,具体为一种基于语法优化和上下文增强的代码注释生成的方法,包括具体步骤如下:构建函数代码/参考注释对、分割数据集、函数代码预处理、构建代码注释词库、构建多模态模型、模型训练、生成目标代码函数注释。本发明专利技术通过将代码表示为抽象语法树及程序依赖图,并提出两种算法来简化AST的结构及扩充PDG节点的信息,通过这些改造,生成了两种新的模态:VFO‑AST和Context‑PDG,这些改进旨在降低AST的复杂性,丰富PDG节点的语义信息,并通过多模态方法融合不同的代码表示形式,以获取更丰富的代码表示,从而生成更高质量的代码注释。

【技术实现步骤摘要】

本专利技术涉及代码注释生成,具体为一种基于语法优化和上下文增强的代码注释生成的方法


技术介绍

1、软件代码结构的繁复性以及软件项目的多变性,致使代码注释的重要性日益凸显。高质量的代码注释支持软件的高可维护性和高可用性。有研究工作表明,开发人员平均需要花费59%的时间在程序理解上,这可以证明软件代码注释对程序理解的重要性。然而,手工编写代码注释需要花费大量时间,不仅编写效率不高,编写注释的质量参差不齐,而且手工编写注释的正确性难以保证。由此可见自动代码注释生成技术的重要性。自动代码注释生成技术是计算机科学与自然语言处理(nlp)的交叉应用,它将代码分析、自然语言理解和文本生成技术相结合,以提高代码的可读性、可理解性和可维护性。

2、深度学习技术的出现极大地推动了程序理解领域的发展,使得代码摘要的研究主要集中在编码器-解码器结构上。当前,代码表示问题已成为研究的焦点。传统的将代码表示为序列的方法在处理长序列时效果不佳,而采用抽象语法树(ast)虽然能保留结构信息,但由于ast结构庞大且层次深,直接输入模型会消耗大量资源,并可能导致梯度消失或爆炸问本文档来自技高网...

【技术保护点】

1.一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,包括具体步骤如下:

2.根据权利要求1所述的一种基于语法优化和上下文增强的代码注释生成的方法,其特征在于,所述S300中的Code-Token模态生成流程如下:将函数代码中的驼峰词按驼峰命名规则进行切割,接着对函数代码中的蛇形词按蛇形命名规则进行切割,而后对代码进行规范化操作,规范化操作包括:在函数代码的单词之间、单词和标点符号之间,标点符号之间添加空格,确保单词和标点符号被视为独立的实体,之后,使用经上述处理后的代码构建代码词库,代码词库由“索引键-代码值”构成,而后将代码词库存储到code_vocab.pk...

【技术特征摘要】

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...

【专利技术属性】
技术研发人员:黄剑锋郑靖轩苏庆杨智程
申请(专利权)人:广东工业大学
类型:发明
国别省市:

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

1