首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于多表征的大规模代码克隆检测方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国科学技术大学苏州高等研究院;中国科学技术大学

摘要:本发明公开了一种基于多表征的大规模代码克隆检测方法及系统。方法包括:S1、从源文件中提取所有函数,得到函数集合;S2、函数集合分为M组,生成哈希值用以构建倒排索引;S3、遍历所有函数,选中函数f,获取所有哈希值在倒排索引中的值,为初始克隆函数候选集;S4、计算函数f与初始克隆函数候选集中各函数h的字符级别相似度;若相似度小于θ1,将函数h移除;若相似度大于μ1,将函数对h,f加入检测结果;S5、计算函数f与过滤后的各函数h'的抽象语法树级别相似度;若相似度大于μ2,将函数对h',f加入检测结果;S6、重复S2至S5,直到M组函数检测完毕。本发明可对大规模输入中克隆代码片段进行精确高效的识别,有效改善代码质量。

主权项:1.一种基于多表征的大规模代码克隆检测方法,其特征在于,包括:步骤S1、利用解析工具从源文件中提取所有函数作为代码克隆检测的基本单位,得到函数集合,并获取对应的字符和抽象语法树信息;步骤S2、将所述函数集合分为M组,选定其中一分组G,为分组G内所有函数的相邻N行代码生成哈希值用以构建倒排索引,所述索引的键为哈希值,索引的值为包含该键的函数ID;步骤S3、遍历步骤S1中的所有函数,对于选中的函数f,为其所有相邻N行代码生成哈希值,获取所有哈希值在倒排索引中的值,作为初始克隆函数候选集;步骤S4、依次计算所述选中的函数f与所述初始克隆函数候选集中各函数h的字符级别的相似度;若相似度小于阈值θ1,则将对应的初始克隆函数候选集中的函数h从初始克隆函数候选集中移除,并生成过滤后克隆函数候选集;若相似度大于阈值μ1,则将由所述选中的函数f和对应的初始克隆函数候选集中的函数h所构成的函数对h,f加入最终的代码克隆检测结果中;步骤S5、依次计算所述选中的函数f与过滤后克隆函数候选集中各函数h′的抽象语法树级别的相似度;若相似度大于阈值μ2,则将由所述选中的函数f和对应的过滤后克隆函数候选集中的函数h′所构成的函数对h′,f加入最终的代码克隆检测结果中;步骤S6、重复步骤S2至S5,直到M组函数均检测完毕。

全文数据:

权利要求:

百度查询: 中国科学技术大学苏州高等研究院 中国科学技术大学 一种基于多表征的大规模代码克隆检测方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。