欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 202110418985X
申请人: 山东师范大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.基于多视图代码特征的细粒度代码自动生成方法,其特征是,包括:获取自然语言描述;

将自然语言描述输入到训练后的编码器中,得到自然语言描述向量;

将自然语言描述向量和代码字典对应的所有融合向量,均输入到训练后的解码器中,解码器输出对应的代码。

2.如权利要求1所述的基于多视图代码特征的细粒度代码自动生成方法,其特征是,所述代码字典,获取步骤包括:

(1):获取若干个已知的代码片段;

(2):对每个代码片段进行单视图构建,得到每个代码片段的抽象语法树、控制流程图和API依赖图;

(3):对每个代码片段的抽象语法树、控制流程图和API依赖图,分别进行图嵌入,得到每个代码片段的抽象语法树特征向量、控制流程图特征向量和API依赖图特征向量;

(4):将每个代码片段的控制流程图特征向量和API依赖图特征向量,均匹配到对应代码片段的抽象语法树的节点上;

(5):将匹配成功的抽象语法树特征向量、控制流程图特征向量和API依赖图特征向量进行融合,得到当前代码片段对应的融合向量;

(6):重复步骤(2)~(5);得到代码片段与融合向量一一对应的代码字典。

3.如权利要求2所述的基于多视图代码特征的细粒度代码自动生成方法,其特征是,对每个代码片段的抽象语法树进行图嵌入,得到每个代码片段的抽象语法树特征向量;具体包括:

采用图卷积神经网络,对每个代码片段的抽象语法树进行图嵌入,将节点特征向量组成的矩阵X,以及节点的指向关系组成的矩阵A,作为图卷积神经网络的输入;得到每个代码片段的抽象语法树特征向量。

4.如权利要求2所述的基于多视图代码特征的细粒度代码自动生成方法,其特征是,将每个代码片段的控制流程图特征向量,均匹配到对应代码片段的抽象语法树的节点上;具体包括:

a1:遍历象语法树,采用字符串匹配的方法在象语法树上找到“BlockStmt”节点,判断其父节点是否为“Method Declaration”;

a2:若是,则匹配失败继续遍历;

a3:否则,将控制流程图特征向量匹配到对应代码片段的抽象语法树的节点上;控制流程图的“BlockStmt”节点的父节点以及子节点,指向关系为父节点指向子节点;

a4:一直循环遍历,直到全部查找成功为止。

5.如权利要求2所述的基于多视图代码特征的细粒度代码自动生成方法,其特征是,将每个代码片段的API依赖图特征向量,均匹配到对应代码片段的抽象语法树AST的节点上;

具体包括:

b1:遍历抽象语法树进行字符串匹配,首先,匹配节点“Method Call Expr”,其子树包含所要查找的函数调用以及参数;

如果匹配失败,则继续遍历;

如果匹配成功,则遍历其子树,分别匹配代码段中的函数调用以及参数;

b2:如果代码段中的函数调用以及参数匹配失败,则继续遍历;

如果代码段中的函数调用以及参数匹配成功后,则对所匹配到的函数、参数进行拼接,得到API依赖图信息;

b3:一直遍历,直到全部匹配为止。

6.如权利要求2所述的基于多视图代码特征的细粒度代码自动生成方法,其特征是,将匹配成功的抽象语法树特征向量、控制流程图特征向量和API依赖图特征向量进行融合,得到当前代码片段对应的融合向量;具体包括:将匹配成功的抽象语法树特征向量、控制流程图特征向量和API依赖图特征向量利用CONCAT连接函数进行融合,得到当前代码片段对应的融合向量。

7.如权利要求2所述的基于多视图代码特征的细粒度代码自动生成方法,其特征是,对每个代码片段进行单视图构建,得到每个代码片段的抽象语法树、控制流程图和API依赖图;其中,得到每个代码片段的抽象语法树之后,还将抽象语法树中的每个节点映射到实值向量。

8.基于多视图代码特征的细粒度代码自动生成系统,其特征是,包括:获取模块,其被配置为:获取自然语言描述;

编码模块,其被配置为:将自然语言描述输入到训练后的编码器中,得到自然语言描述向量;

解码模块,其被配置为:将自然语言描述向量和代码字典对应的所有融合向量,均输入到训练后的解码器中,解码器输出对应的程序。

9.一种电子设备,其特征是,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述权利要求1‑7任一项所述的方法。

10.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1‑7任一项所述的方法。