[发明专利]一种基于程序源代码语义分析的代码相似度检测方法无效
申请号: | 200910073094.4 | 申请日: | 2009-10-26 |
公开(公告)号: | CN101697121A | 公开(公告)日: | 2010-04-21 |
发明(设计)人: | 王甜甜;马培军;苏小红;王宇颖 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F17/30 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 张宏威 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于程序源代码语义分析的代码相似度检测方法,涉及计算机程序分析技术和计算机软件的重复代码检测方法。它解决了现有的对语法表示不同但语义相似的代码的相似度检测准确度低、计算复杂度高,以及无法实现大规模程序代码相似度检测的问题。它的方法为:分别将待检测的两段源代码解析为两棵系统依赖图的控制依赖树,并分别执行基本代码标准化;利用度量值方法提取两棵基本代码标准化后的控制依赖树的候选相似代码控制依赖树;对提取的候选相似代码执行高级代码标准化操作;计算语义相似度,获得相似度结果,完成代码相似度检测;本发明适用于源代码剽窃检测、软件组件库查询、软件缺陷检测以及程序理解等场合。 | ||
搜索关键词: | 一种 基于 程序 源代码 语义 分析 代码 相似 检测 方法 | ||
【主权项】:
一种基于程序源代码语义分析的代码相似度检测方法,其特征是:它由以下步骤完成:步骤一、分别将待检测的两段源代码解析为两棵系统依赖图的控制依赖树;步骤二、对步骤一获得的两棵控制依赖树分别执行基本代码标准化,获得两棵基本代码标准化后的控制依赖树;步骤三、利用度量值方法分别提取步骤二获得的两棵基本代码标准化后的控制依赖树的候选相似代码控制依赖树;步骤四、判断是否提取到候选相似代码控制依赖树,如果判断结果为是,则执行步骤五,如果结果为否,则结束两段源代码的相似度检测;步骤五、对所述候选相似代码控制依赖树执行高级代码标准化操作;步骤六、计算候选相似代码控制依赖树的结构相似度StructureSim和候选相似代码控制依赖树的语句相似度StatementSim,并根据公式:SemanticSim=λstru*StructureSim+λstat*StatementSim计算候选相似代码控制依赖树的语义相似度,获得语义相似度结果,完成代码相似度检测;式中:λstru为结构相似度的权值、λstat为语句相似度的权值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910073094.4/,转载请声明来源钻瓜专利网。
- 上一篇:一种承烧板
- 下一篇:多屏拼接显示处理方法和装置