[发明专利]基于多视图程序特征的代码自动生成方法及系统在审

专利信息
申请号: 202110070970.9 申请日: 2021-01-19
公开(公告)号: CN112764738A 公开(公告)日: 2021-05-07
发明(设计)人: 吕晨;庄云亮;王潇;吴琼;吕蕾;高学剑;刘弘 申请(专利权)人: 山东师范大学
主分类号: G06F8/34 分类号: G06F8/34;G06F8/33;G06F8/41
代理公司: 济南圣达知识产权代理有限公司 37221 代理人: 张庆骞
地址: 250014 山*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 视图 程序 特征 代码 自动 生成 方法 系统
【权利要求书】:

1.一种基于多视图程序特征的代码自动生成方法,其特征在于,包括:

解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量;

解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量;

解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量;

将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量;

将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。

2.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,使用Java工具eclipse解析代码段的语法结构。

3.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,使用word embedding对AST树嵌入表示。

4.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,使用开源工具control-flow来解析代码生成CFG。

5.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,使用word embedding编码方式,对CFG的节点指令进行编码,最终得到每个节点的初始化嵌入矩阵。

6.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,利用Javaassist和Spoon工具在代码片段中解析出的ADG进行向量建模,使用one-hot编码,对代码关系调用图中的每个节点方法名进行一维向量表示,最终得到每个节点的初始化嵌入矩阵。

7.如权利要求1所述的基于多视图程序特征的代码自动生成方法,其特征在于,输入的自然语言描述预处理为二维向量序列输入到LSTM的编码器中进行训练,最终得到的隐含层向量用于下一步的输入,利用注意力机制进行权重分配和解码器进行训练。

8.一种基于多视图程序特征的代码自动生成系统,其特征在于,包括:

AST嵌入向量生成模块,其用于解析代码段的语法结构,生成语法树AST,并对AST节点进行嵌入向量表示,得到AST嵌入向量;

CFG嵌入向量生成模块,其用于解析代码段的语义信息,生成控制流程图CFG,并对CFG进行嵌入向量表示,得到CFG嵌入向量;

ADG的嵌入向量生成模块,其用于解析代码段的方法及参数调用信息,生成API依赖图ADG,并对ADG节点进行嵌入向量表示,得到ADG的嵌入向量;

融合向量生成模块,其用于将AST嵌入向量、CFG嵌入向量与ADG的嵌入向量做连接,得到最后的融合向量;

目标代码生成模块,其用于将融合向量和编码器的词嵌入向量输入至解码器中,输出相应的目标代码。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的基于多视图程序特征的代码自动生成方法中的步骤。

10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的基于多视图程序特征的代码自动生成方法中的步骤。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东师范大学,未经山东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110070970.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top