[发明专利]一种基于智能机器人应用的代码克隆检测方法在审
申请号: | 202111096050.0 | 申请日: | 2021-09-17 |
公开(公告)号: | CN115826978A | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 郭耀;蔡奕丰;臧振宇;张子祺;王远鹏;陈向群 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/75 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 贾晓玲 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 智能 机器人 应用 代码 克隆 检测 方法 | ||
1.一种基于智能机器人应用的代码克隆检测方法,其特征在于,包括以下步骤:
载入智能机器人应用的源代码;
将所述源代码转换为抽象语法树;
利用关键词统计将所述抽象语法树中的节点转换为特征向量;
基于特征向量,通过剪枝对所述抽象语法树进行过滤;
对过滤后的抽象语法树进行相似度计算,得到相似度结果;
将所述相似度结果进行还原处理,即得到克隆代码对。
2.如权利要求1所述的方法,其特征在于,所述将所述源代码转换为抽象语法树,包括:利用ANLTR生成的语法分析器,将源代码转换为抽象语法树。
3.如权利要求1所述的方法,其特征在于,所述关键词统计中的关键词包括:if、then、for。
4.如权利要求1所述的方法,其特征在于,所述基于特征向量,通过剪枝对所述抽象语法树进行过滤,包括:
根据所述特征向量,组合所述源代码中每个变量的特征向量,生成特征矩阵。
5.如权利要求4所述的方法,其特征在于,所述基于特征向量,组合所述源代码中每个变量的特征向量,生成特征矩阵之后,还包括:
根据所述抽象语法树统计关键词个数与符号个数,并根据个数构建对应的计数向量;
所述对过滤后的抽象语法树进行相似度计算,得到相似度结果,包括:
根据所述特征矩阵和所述计数向量进行相似度计算,得到相似度结果。
6.如权利要求1所述的方法,其特征在于,所述将所述相似度结果进行还原处理,即得到克隆代码对,包括:
对相似度结果进行聚类操作,将类内相似代码所对应的源代码及源代码内行数进行展示。
7.如权利要求1所述的方法,其特征在于,所述对过滤后的抽象语法树进行相似度计算,得到相似度结果,包括:
利用局部敏感哈希算法对过滤后的抽象语法树进行相似度计算,得到相似度结果。
8.如权利要求1所述的方法,其特征在于,还包括:保存克隆代码对检测结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111096050.0/1.html,转载请声明来源钻瓜专利网。