-
公开(公告)号:CN107273294B
公开(公告)日:2020-07-28
申请号:CN201710464437.4
申请日:2017-06-19
Applicant: 电子科技大学
Abstract: 本发明公开了一种基于神经网络语言模型的重复代码检测方法,属于重复代码检测方法技术领域,解决现有技术中的重复代码检测方法,不能检测出没有进行本质性改变的重复代码,造成检测的准确率,容易给代码原创者造成经济损失等问题。本发明包括步骤1:将所有的代码中的每个代码转换为相应的CFG图;步骤2:抽取每个CFG图中每一个结点的根子图;步骤3:将所有根子图采用向量表示;步骤4:将根子图的向量表示输入到深度图核函数中学习,得到所有CFG图两两间的相似度;步骤5:将CFG图两两间的相似度输入到AP关联聚类算法中进行CFG图的聚类得到多个聚类簇,在同一个聚类簇中的CFG图所对应的代码即为重复代码。本发明用于发现重复代码。
-
公开(公告)号:CN107220180A
公开(公告)日:2017-09-29
申请号:CN201710426179.0
申请日:2017-06-08
Applicant: 电子科技大学
Abstract: 属于软件工程领域,公开了一种基于神经网络语言模型的代码分类方法,首先将代码转换为AST树,初始化AST树的结点ci的向量,利用孩子结点tx的向量得到非叶子结点pk的重构向量;利用AST_Node2Vec模型对所述结点ci的向量进行更新,若不满足循环条件,则继续循环;若满足循环条件,则输出更新了结点向量的AST树和更新后的非叶子结点的重构向量;将更新了结点向量的AST树和更新后的非叶子结点的重构向量作为基于树的卷积神经网络的输入,利用所述基于树的卷积神经网络完成对代码的分类;采用该方法对代码进行分类可有效的避免维度灾难问题,同时能够显示出语义上的相似性,能够很好的对代码按照功能进行分类。
-
公开(公告)号:CN106095443B
公开(公告)日:2019-04-05
申请号:CN201610412437.5
申请日:2016-06-14
Applicant: 电子科技大学
IPC: G06F8/30
Abstract: 没本发明公开了一种基于C/C++代码库的API调用模式挖掘方法。本方法的输入是C/C++代码库,首先通过开源的基于LLVM的clang编译器对输入代码库进行编译,利用clang提供的相关扩展接口完成API序列信息的提取;然后对API序列进行预处理,将相同的API序列合并成一条序列及将嵌套使用的序列进行关联处理;然后将预处理好的API序列存储到数据库中;然后计算数据库中API序列间的距离,得到距离矩阵;然后根据API序列间的距离矩阵,使用DBScan聚类算法对API序列进行聚类处理,将聚类结果存储到数据库中;最后用户输入函数片段信息,利用数据库查询技术将符合要求的API序列及对应的使用代码片段返回给用户。
-
公开(公告)号:CN107220180B
公开(公告)日:2020-08-04
申请号:CN201710426179.0
申请日:2017-06-08
Applicant: 电子科技大学
Abstract: 属于软件工程领域,公开了一种基于神经网络语言模型的代码分类方法,首先将代码转换为AST树,初始化AST树的结点ci的向量,利用孩子结点tx的向量得到非叶子结点pk的重构向量;利用AST_Node2Vec模型对所述结点ci的向量进行更新,若不满足循环条件,则继续循环;若满足循环条件,则输出更新了结点向量的AST树和更新后的非叶子结点的重构向量;将更新了结点向量的AST树和更新后的非叶子结点的重构向量作为基于树的卷积神经网络的输入,利用所述基于树的卷积神经网络完成对代码的分类;采用该方法对代码进行分类可有效的避免维度灾难问题,同时能够显示出语义上的相似性,能够很好的对代码按照功能进行分类。
-
公开(公告)号:CN106095443A
公开(公告)日:2016-11-09
申请号:CN201610412437.5
申请日:2016-06-14
Applicant: 电子科技大学
IPC: G06F9/44
CPC classification number: G06F8/30
Abstract: 没本发明公开了一种基于C/C++代码库的API调用模式挖掘方法。本方法的输入是C/C++代码库,首先通过开源的基于LLVM的clang编译器对输入代码库进行编译,利用clang提供的相关扩展接口完成API序列信息的提取;然后对API序列进行预处理,将相同的API序列合并成一条序列及将嵌套使用的序列进行关联处理;然后将预处理好的API序列存储到数据库中;然后计算数据库中API序列间的距离,得到距离矩阵;然后根据API序列间的距离矩阵,使用DBScan聚类算法对API序列进行聚类处理,将聚类结果存储到数据库中;最后用户输入函数片段信息,利用数据库查询技术将符合要求的API序列及对应的使用代码片段返回给用户。
-
公开(公告)号:CN107273294A
公开(公告)日:2017-10-20
申请号:CN201710464437.4
申请日:2017-06-19
Applicant: 电子科技大学
Abstract: 本发明公开了一种基于神经网络语言模型的重复代码检测方法,属于重复代码检测方法技术领域,解决现有技术中的重复代码检测方法,不能检测出没有进行本质性改变的重复代码,造成检测的准确率,容易给代码原创者造成经济损失等问题。本发明包括步骤1:将所有的代码中的每个代码转换为相应的CFG图;步骤2:抽取每个CFG图中每一个结点的根子图;步骤3:将所有根子图采用向量表示;步骤4:将根子图的向量表示输入到深度图核函数中学习,得到所有CFG图两两间的相似度;步骤5:将CFG图两两间的相似度输入到AP关联聚类算法中进行CFG图的聚类得到多个聚类簇,在同一个聚类簇中的CFG图所对应的代码即为重复代码。本发明用于发现重复代码。
-
-
-
-
-