基于程序依赖图的代码克隆检测算法研究
【学位单位】:中国科学技术大学
【学位级别】:硕士
【学位年份】:2018
【中图分类】:TP311.5
【部分图文】:
1.2.2基于token的代码克隆检测技术??基于token的代码克隆检测方法首先将整个源系统代码通过词法解析工具转??化为token序列。源码经过转化后得到的一个个单词即称为token,如图1.1。接??着扫描转化后的token序列以寻找相似或者相同的token子序列,子序列对应的??原代码的部分就被报为克隆代码。对比于基于文本的方法,基于token的方法对??于检测具有不同格式的代码通常更有鲁棒性。??先进的基于token的代码克隆检测技术很多如CP-Miner[11],CCFinder[1()^??等,其中日本的Kamiya等人发表的CCFinder工具的做法如下:首先通过一个词??法解析工具将所有源码文件的每一行代码都转化为一个个的token并将所有文件??的token连接合并为一个单一的token序列。然后针对所感兴趣语言标识符的结??构和标准化方法对合并的大token序列做一些token的增加,删除和改变的变换。??变化的目的是将标识符包括类型,变量及常量都替换成特殊的^1^11。这样的标??识符替换方法使得那些仅是变量名不同的代码块也可以被检测为克隆代码对。接??着,用一个基于子字符串的后缀树匹配算法在变化后的token序列中寻找相似的??子序列
图2.1控制流程图(CFG)??表2.1集¥?S中所有边的控制¥赖关系S中的边?控制依赖于?标签??1?T1?F2?T2?F??3??T系??数据依赖子图的构造过程中,图中节点所表个运算符级别的子图。这种子图在没有由调用所带来的副作用时几乎非常容易构建。
不管针对什么样的语言做的检测,使用什么样的PDG生成工具和应用什么??样的克隆寻找和判定算法,绝大多数的方法都有着总体相似的代码克隆检测流??程。在图2.2中,我们给出了?PDG代码克隆检测方法流程中的重要环节或步骤,??其中虚线部分表示在一些早期工作或是小规模数据集上的工作中并没有考虑的??降低克隆比较空间的步骤,但是在实际的代码克隆检测过程中这却是非常重要和??实际需要考虑的内容。??,一'、?i?:?r—^^??、__乂通过生成?丨降低克隆|?PDG对的?、^??源代——^工具产生——比较空间;——^克隆判定——^克隆??码?源码的?i以减低时;?及克隆的?t结果??^>?PDG?丨间消耗?丨?聚类?^^??\?J??」?V?J??图2.2?PDG代码克隆检测的流程??基于PDG代码克隆检测方法的总体流程主要包括三个重要的步骤,分别如??下:??(1)?PDG生成:源代码中的程序语句作为一种高级抽象的逻辑和运算表示??并不能很好的简单被机器理解和支持。在代码的编译运行的过程中,是先将高级??语言通过各种编译器转化成计算机可以支持的汇编代码或机器指令,再生成相应??的二进制可执行代码运行的。相似地,在代码克隆检测方法中也首先需要将这些??高级语言转化成较容易理解和处理的形式。在基于PDG的方法中
【相似文献】
相关期刊论文 前10条
1 张春英;张雪;;不确定属性图的子图同构及其判定算法[J];计算机科学;2013年06期
2 张一楠;邹兆年;李建中;;不确定图间α-β子图同构匹配算法[J];智能计算机与应用;2011年05期
3 陈新泉;;图同构的判定研究[J];集成技术;2013年06期
4 张硕;李建中;高宏;邹兆年;;一种多到一子图同构检测方法[J];软件学报;2010年03期
5 周克元;;图同构的一个算法[J];和田师范专科学校学报;2007年02期
6 刘富贵;;两图同构的一个必要条件和一个充要条件[J];武汉水运工程学院学报;1992年02期
7 刘波;房斌;张世勇;李直霖;;基于关系模型的子图同构检测算法设计与实现[J];计算机工程;2011年11期
8 王毅;丁函;任丹;;一种无向图同构的判定算法[J];科技创新与应用;2012年28期
9 侯爱民;郝志峰;胡传福;陆海鹏;;无向图同构的快速算法[J];华南理工大学学报(自然科学版);2011年10期
10 侯爱民;;图同构的一个充分必要条件[J];计算机工程与应用;2009年30期
相关博士学位论文 前4条
1 商慧亮;一种新的图同构判定算法[D];复旦大学;2009年
2 张硕;图数据库查询处理技术的研究[D];哈尔滨工业大学;2010年
3 侯爱民;哈密顿环与图同构问题的理论研究及算法设计[D];华南理工大学;2013年
4 商慧亮;一种新的图同构判定算法——电路模拟法[D];复旦大学;2009年
相关硕士学位论文 前10条
1 汪敏;基于程序依赖图的代码克隆检测算法研究[D];中国科学技术大学;2018年
2 刘杨;基于大图处理框架的分布式子图同构研究[D];北京邮电大学;2018年
3 吴楠;有向图子图同构计算算法研究[D];辽宁大学;2012年
4 李美云;子图同构问题中索引构建方法研究[D];燕山大学;2017年
5 王小涛;基于子图同构搜索的徽派建筑快速建模方法研究[D];合肥工业大学;2013年
6 李辰辰;基于非挖掘索引的图查询研究[D];辽宁大学;2014年
7 韩玉;基于图数据的子图同构算法研究[D];燕山大学;2015年
8 张一楠;图结构数据上的子图查询[D];哈尔滨工业大学;2011年
9 张海龙;图的同构问题算法研究[D];华中科技大学;2007年
10 潘佳文;PTC-SaaS中基于图匹配的租约推荐方法研究[D];东北大学;2012年
本文编号:2871987
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2871987.html