zoukankan      html  css  js  c++  java
  • 【Code clone】Distributed Code Clone Detection Based on Index

    1 摘要 

      随着软件产业的发展,代码克隆现象越来越常见,随之带来的安全漏洞、可维护性、产权等问题也引起人们重视.代码克隆按照复制程度分为4类:完全复制、修改名称、更换顺序和自实现.现有的代码克隆检测工具只能在单机情况下对2个项目进行针对性克隆检测,并且已有的源代码搜索引擎也只能检测出代码完全复制的情况.针对这2种情况进行研究后,提出一种分布式代码克隆检测算法,实现一个项目代码从多个开源项目代码中匹配检测,得到除了自实现类型的其他3类克隆结果,并利用分布式系统对开源项目代码建立索引和代码克隆检测,从而解决了可以对任意一个项目进行代码克隆检测。

    2 方法概述

        1)对源代码进行预处理,转换成相应的Token序列;

        2)在Token序列的基础上,选取固定个数的Token组成Chunk,计算其Hash值并将其存在HBase数据库中;

        3)识别出克隆代码段(关键过程):

                     根据hash值,识别出具有相同的hash值的Chunk,将这些Chunk按照邻接表的格式进行存储,如下图:

      同时为了方便识别出完整的克隆序列,将邻接表进行相应的整理:

    3 实验

      junit4.1.2 和Apache Tomcat 7.0.61,分别进行单机实验和分布式实验,结果:

        

          

  • 相关阅读:
    [BZOJ 1698] 荷叶池塘
    [BZOJ 3132] 上帝造题的七分钟
    [JLOI2011] 飞行路线
    [Codeforces Round49F] Session in BSU
    [BZOJ 3036] 绿豆蛙的归宿
    CRC-16校验原理
    ubuntu下mysql的安装与配置
    【OpenCV】边缘检测:Sobel、拉普拉斯算子
    我对sobel算子的理解
    梯度算子(普通的+Robert + sobel + Laplace)
  • 原文地址:https://www.cnblogs.com/wjlog/p/5387766.html
Copyright © 2011-2022 走看看