恭喜西安电子科技大学宋建锋获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网恭喜西安电子科技大学申请的专利基于频繁序列挖掘的代码克隆检测方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN115203053B 。
龙图腾网通过国家知识产权局官网在2025-05-23发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202210911699.1,技术领域涉及:G06F11/3604;该发明授权基于频繁序列挖掘的代码克隆检测方法是由宋建锋;李领杰;谢琨;徐浩;苗启广;杨瑾设计研发完成,并于2022-07-28向国家知识产权局提交的专利申请。
本基于频繁序列挖掘的代码克隆检测方法在说明书摘要公布了:本发明公开一种基于频繁序列挖掘的代码克隆检测方法,主要解决现有代码克隆检测方法无法识别插入删除重复代码和检测性能低问题。其实现方案是:通过生成词法工具和语法解析工具对源代码进行解析获取抽象语法树;解析抽象语法树获取源代码函数或方法中的Token集并对其进行标准化处理;利用处理后的Token组成行序列建立序列数据库;使用闭合模式挖掘算法ClaSp对序列数据库进行挖掘,构建候选克隆对并进行去重和通过设置阈值对其过滤;对剩下的候选克隆对中的克隆行进行分组和匹配,获取最终克隆对,完成代码克隆检测。本发明具有良好的检测精度,提高了检测性能,可应用于教学中学生代码的抄袭检测和常规软件中复制粘贴代码的检测。
本发明授权基于频繁序列挖掘的代码克隆检测方法在权利要求书中公布了:1.一种基于频繁序列挖掘的代码克隆检测方法,其特征在于,包括如下步骤:1使用ANTLR4工具的元语言定义不同编程语言的后缀名为g4的语法文件Grammer,根据Grammer分别生成词法工具和语法解析工具;2使用上述工具对源代码文件进行解析,生成抽象语法树;3解析抽象语法树,以过滤掉源代码中的头文件、空行及注释,获取源代码中每个函数包含的Token集的起始和终止位置集合,并对过长的函数分片;4遍历起始和终止位置集合获取每个函数包含的所有Token,将函数中的Token进行标准化处理并将在源代码同一行的Token合并成序列;5对每个函数中每个序列进行Hash化,并为每个序列建立索引保存到函数序列集,为每个函数序列集分配唯一标识ID,利用源代码中的多个函数序列集构成序列数据库;6对序列数据库使用闭合模式挖掘算法ClaSp查找支持度至少为2的频繁子序列,同时将ClaSp中生成的序列ID替换为上述序列数据库中的函数序列集ID,得到频繁子序列和函数序列集ID组成的频繁结果集;7对频繁结果集的每一个频繁子序列通过函数序列集ID两两构建候选克隆对,并将其保存到克隆对集合中;8通过对克隆对集合中的每个候选克隆对的两个函数序列集ID构建唯一关键字来扩展去除重复出现的候选克隆对,再将剩下具有唯一性的候选克隆对中重复出现的克隆行去除掉;9设置克隆大小size、克隆大小差值diff、间隙阈值gap及克隆大小最小值min参数;10对克隆对集中任意一个候选克隆集大小小于size的候选克隆对和候选克隆对中两个候选克隆集大小差值大于diff的结果对进行过滤;11对过滤后的克隆对集中的候选克隆对中的克隆行进行从小到大排序,并通过设置的gap和min对克隆行进行分组,即记录两个连续克隆行差值小于gap的行直到大于gap,将记录的克隆行生成行组,并过滤掉其小于min的行组;12遍历克隆对集中每个候选克隆对,对候选克隆对中的行组进行匹配,将匹配到的行组组成最终克隆对,得到最终克隆对集,完成对代码的克隆检测。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人西安电子科技大学,其通讯地址为:710071 陕西省西安市太白南路2号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。