[发明专利]基于多视图程序特征的代码自动生成方法及系统在审
申请号: | 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中任一项所述的基于多视图程序特征的代码自动生成方法中的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东师范大学,未经山东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110070970.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用于冻干机的自动进出料装置
- 下一篇:一种武术推手功力训练器