一种基于生成对抗网络的代码抽象语法树生成方法技术

技术编号:34432999 阅读:30 留言:0更新日期:2022-08-06 16:12
本发明专利技术涉及一种基于生成对抗网络的代码抽象语法树生成方法,属于计算机领域,所述方法包含两个连续的迭代过程;第一层迭代为生成器

【技术实现步骤摘要】
一种基于生成对抗网络的代码抽象语法树生成方法


[0001]本专利技术属于计算机领域,具体地涉及一种基于生成对抗网络的代码抽象语法树生成方法。

技术介绍

[0002]随着信息系统的深入应用,各企业和组织内部产生了大量作为业务支撑的遗留系统。由于它们的语言陈旧、结构老化,难以适应现有系统。如何将用过时或不推荐的语言编写的代码库移植到现代语言,或者将用不同语言编写的代码集成到现有的代码库中是一个亟需解决的问题。代码翻译可以实现程序在不同语言间的相互转换,是解决遗留系统语言陈旧问题的有效途径。与普通文本语言翻译不同,由于不同程序语言之间的语法结构差异,直接进行代码

代码翻译需要大量源语言和目标语言方面的专业知识且通常成本高昂。目标代码和源代码虽然语法不同,但为了完成同样的特定功能,其语法树结构是类似的。因此,找到与源代码的抽象语法树相似的目标代码的抽象语法树,是代码翻译中的一个关键步骤。然而现有技术只能将代码转换成文本序列,无法生成树形结构。

技术实现思路

[0003]本专利技术针对上述技术问题,提供一种基于生成对抗本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于生成对抗网络的代码抽象语法树生成方法,其特征在于,输入源代码,提取源代码抽象语法树,然后进行两个连续的迭代;第一层迭代为生成器

文本转换器;用Seq2Seq构造生成器,提取源代码的抽象语法树后,将源代码的抽象语法树用广度优先遍历展开成第一文本序列,用Seq2Seq模型将第一文本序列翻译成与目标代码相对应的第二文本序列,生成的第二文本序列长度不固定,第二文本序列输入到文本转换器;第二层迭代为文本转换器

判别器;文本转换器对第二文本序列自由组合转换生成新抽象语法树,转换器生成的新抽象语法树经过特征提取进入判别器与源代码的抽象语法树进行对比,若匹配失败则返回文本转换器,重新组合第二文本序列生成新抽象语法树,进入下一轮迭代;若匹配成功,则迭代结束,输出该语法树,程序结束。2.根据权利要求1所述的一种基于生成对抗网络的代码抽象语法树生成方法,其特征在于,所述第一层迭代的具体方法:在生成器中,Encoder对源代码抽象语法树展开的节点第一文本序列进行编码,将这些节点第一文本序列转换成一个固定长度的向量,然后通过Decoder将该向量转换成与目标代码相对应的第二文本序列输出。3.根据权利要求1所述的一种基于生成对抗网络的代码抽象语法树生成方法,其特征在于,所述第二层迭代中,第二文本序列转换成的新抽...

【专利技术属性】
技术研发人员:杨永全董喜凤洪博为魏志强
申请(专利权)人:中国海洋大学
类型:发明
国别省市:

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

1