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

摘要:

权利要求书:

1.一种面向技术特征的源代码对比方法,其特征在于,包括:

代码文件预处理阶段,用于输出代码的函数调用结构、函数名称和内置类名称;

对所述函数调用结构语义编码阶段:采用基于图卷积神经网络的自编码器方法对函数调用结构进行语义编码,得到函数调用结构向量;

对所述函数名称和内置类名称的调用信息使用TF‑IDF算法编码阶段,分别得到函数向量和内置类向量;

最后将函数调用结构向量、函数向量和内置类向量进行拼接作为整体技术特征向量,以比对代码相似度。

2.根据权利要求1所述一种面向技术特征的源代码对比方法,其特征在于,所述代码文件预处理阶段包括:使用函数调用结构生成工具得到代码技术特征中函数调用结构的DOT文件,其中,DOT文件用于描述函数调用结构的图表示中节点以及节点之间的关系,将DOT文件经过预处理后得到函数调用结构的图表示 :在公式(I)中,V表示函数名称的集合;AV表示函数属性的集合;E表示存在函数调用边的集合;AE表示边属性的集合;根据函数调用结构的图表示 ,进而得到函数调用结构的图表示的邻接矩阵A。

3.根据权利要求1所述一种面向技术特征的源代码对比方法,其特征在于,所述函数调用结构语义编码阶段包括:代码文件经过上述预处理后得到函数调用结构的图表示 、函数名称和内置类名称,使用基于图卷积神经网络(Graph Convolutional Neural Networks,GCN)的自编码器方法对函数调用结构的图表示 进行语义编码,结构语义向量hs包含函数属性和存在函数调用边的信息,编码器的计算如公式(II)至(IV)所示:在公式(II)(III)(IV)中,hs是函数调用结构语义向量;AV是函数属性的集合;A是函数调用结构的图表示的邻接矩阵; 是对称归一化的邻接矩阵;

Relu是激活函数;W0和W1是待学习的参数,对图自编码器进行训练后得到的;所述图自编码器包括编码器和解码器,所述编码器的计算如公式(II)至(IV)所示;

D是度矩阵,度矩阵是对角阵,对角上的元素为各个顶点的度;

所述图自编码器采用sigmoid函数作为解码器来重构原始的图,所述解码器的计算如公式(V)所示:在公式(V)中, 是重构原始图的邻接矩阵;σ是sigmoid函数。

4.根据权利要求3所述一种面向技术特征的源代码对比方法,其特征在于,使用重构图的邻接矩阵与原始图的邻接矩阵的交叉熵作为损失函数,损失函数的计算如公式(VI)所示:在公式(VI)中,N表示函数调用边集合的数量; 表示原始图的邻接矩阵A中的元素;

表示重构原始图的邻接矩阵 中的元素。

5.根据权利要求1所述一种面向技术特征的源代码对比方法,其特征在于,所述函数名称和内置类名称的调用信息编码阶段包括:根据函数名称的TF‑IDF计算模块得到函数调用信息向量,函数向量hf的计算如公式(VII)所示:在公式(VII)中,hf表示函数向量;f(funi)表示代码中第i个调用的函数的TFIDF值;

根据内置类的TF‑IDF计算模块得到内置类调用信息向量,内置类向量hc的计算如公式(VIII)所示:在公式(VIII)中,hc表示内置类向量;f(clsi)表示代码中导入的第i个内置类的TFIDF值。

6.根据权利要求1所述一种面向技术特征的源代码对比方法,其特征在于,将函数调用结构向量、函数向量和内置类向量拼接作为技术特征向量,技术特征向量h的计算如公式(IX)所示:在公式(IX)中,h表示技术特征向量,⊕是向量拼接符;

最后,将技术特征向量的余弦相似度值simα作为检索出的可复用代码和新设计代码的相似度,代码相似度的计算如公式(X)所示:在公式(X)中,simα是检索出的可复用代码和新设计代码的相似度值;cos是余弦相似度函数;hsea是检索出可复用代码的技术特征向量;hdes是新设计代码的技术特征向量。

7.一种加载有如权利要求1‑6任意一项所述方法的系统,其特征在于,包括:代码文件预处理阶段处理模块;函数调用结构语义编码阶段处理模块;函数和内置类名称的调用信息编码阶段处理模块;最后将结构向量、函数向量和内置类向量进行拼接作为整体技术特征向量;基于技术特征向量的代码对比功能。

8.一种加载有如权利要求1‑6任意一项所述方法的程序产品,其特征在于,包括:其中,程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行上述的方法。

9.一种加载有如权利要求1‑6任意一项所述方法的计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现本发明记载的任一项所述方法的步骤。

10.一种利用如权利要求1‑6任意一项所述方法的应用方法,其特征在于,包括:采用基于图卷积神经网络的自编码器方法进行图语义编码,基于语义向量对比代码结构语义;基于函数和内置类名称的调用信息向量进行函数相似性和内置类的相似性对比;最后将结构向量、函数向量和内置类向量进行拼接作为整体技术特征向量,比对代码相似度。