CN116302089A - 基于图片相似度的代码克隆检测方法、系统及存储介质 - Google Patents
基于图片相似度的代码克隆检测方法、系统及存储介质 Download PDFInfo
- Publication number
- CN116302089A CN116302089A CN202310583348.7A CN202310583348A CN116302089A CN 116302089 A CN116302089 A CN 116302089A CN 202310583348 A CN202310583348 A CN 202310583348A CN 116302089 A CN116302089 A CN 116302089A
- Authority
- CN
- China
- Prior art keywords
- code
- source code
- detected
- file
- similarity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 56
- 238000010367 cloning Methods 0.000 claims abstract description 32
- 239000011159 matrix material Substances 0.000 claims description 43
- 238000001914 filtration Methods 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 25
- 238000010606 normalization Methods 0.000 claims description 15
- 238000013215 result calculation Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000012512 characterization method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
- G06F8/751—Code clone detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
技术领域
本发明属于源代码克隆检测领域,更具体地,涉及一种基于图片相似度的代码克隆检测方法、系统及存储介质。
背景技术
代码克隆检测作为衡量代码复用的一种有效方式,在软件开发、维护以及质量保证中发挥着重要作用。不好的代码复用方式会对整个软件系统的开发和维护带来很多不利因素,因此高效且准确的代码克隆检测是亟需解决的痛点问题。
目前主流的代码克隆检测可以分为大规模克隆检测和语义克隆检测两类。大规模克隆检测主要采用基于文本和基于令牌的方式实现,通过直接将代码片段转换为文本或令牌序列,然后进行相似度比较,检测时间较短,但缺乏对代码语义信息的考虑。
现有的语义克隆检测主要包括基于图和基于树的检测方法。基于图的检测方法,程序依赖的图(PDG)和控制流图(CFG)都具有复杂的结构,导致对其相似度匹配的时间开销巨大;此外,生成准确的图形表示一般需要代码编译,这导致基于图的方法对某些代码片段(例如单个函数、代码片段)的检测有限。基于树的克隆检测方法中树表征的结构也非常复杂,仍然会导致匹配的时间开销过大。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种基于图片相似度的代码克隆检测方法、系统及存储介质,其目的在于同时实现对大规模语义克隆的代码克隆检测。
为实现上述目的,按照本发明的一个方面,提供了一种基于图片相似度的代码克隆检测方法,包括:
S1、构建源代码集的倒排索引字典,所述倒排索引字典的键为每个源代码块的哈希值,值为源代码的文件名;
S2、计算待测目标文件的代码块哈希值,并以每个代码块的哈希值为键在所述倒排索引字典中搜索,得到对应的源代码的文件名列表;
S3、计算待测目标文件与所述列表中每个源代码的代码块相似度K,若,则判断待测目标文件与对应的源代码不存在克隆关系;若/>,则判断待测目标文件与对应的源代码存在克隆关系;其中,/>为设定的第一克隆过滤阈值,/>为设定的第二克隆过滤阈值;
S42、将所述抽象语法树转换为N×N的语义特征矩阵,其中,所述语义特征矩阵中的元素表示所述抽象语法树中节点/>指向节点/>的边的条数,/>和/>取值分别为0,1,……,N-1,N为所述抽象语法树节点的总数;
S43、将所述语义特征矩阵转换为对应的图片。
3.根据权利要求2所述的方法,其特征在于,S43中,将所述语义特征矩阵转换为对应的图片之前,还包括:删除所述语义特征矩阵中表示两个叶子节点之间边的条数的元素。
进一步地,S43中,将所述语义特征矩阵转换为对应的图片之前,还包括:将所述语义特征矩阵进行归一化;所述归一化公式为:
进一步地,S4中,分别计算待测目标文件与每个所述源代码对应的图片相似度,得到克隆检测结果,包括:
分别计算待测目标文件与每个所述源代码对应的图片的均方误差值;
进一步地,S1中,构建源代码集的倒排索引字典包括:
S11、将源代码的每n行拼接为一个字符串,则每个源代码生成的代码块个数为:M-n+1,其中,M表示源代码的行数;
S12、计算每个代码块的哈希值,并以所述哈希值为键,对应的源代码的文件名为值,构建所述倒排索引字典。
进一步地,在S11之前,还包括步骤:
提取每个源代码的抽象语法树,并对所述抽象语法树中的变量名类型节点的代码令牌进行规范化;所述规范化包括将同类型变量的变量名用统一的变量名代替。
进一步地,S3中,所述代码块相似度K为:
按照本发明的另一方面,提供了一种基于图片相似度的代码克隆检测系统,用于执行如第一方面任一项所述的基于图片相似度的代码克隆检测方法,包括:
倒排索引字典构建模块,用于构建源代码集的倒排索引字典,所述倒排索引字典的键为每个源代码块的哈希值,值为源代码的文件名;
粗粒度过滤结果计算模块,用于计算待测目标文件的代码块哈希值,并以每个代码块的哈希值为键在所述倒排索引字典中搜索,得到对应的源代码的文件名列表;
细粒度过滤结果计算模块,用于计算待测目标文件与所述列表中每个源代码的代码块相似度K,若,则判断待测目标文件与对应的源代码不存在克隆关系;若/>,则判断待测目标文件与对应的源代码存在克隆关系;其中,/>为设定的第一克隆过滤阈值,/>为设定的第二克隆过滤阈值;
按照本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面任一项所述的方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明的方法通过构建源代码集的倒排索引字典,在倒排索引字典搜索与待测目标文件存在一定相似性的代码集合作为粗粒度过滤的结果,实现在大规模源代码集中快速过滤非克隆代码;基于该粗粒度过滤的结果,再次过滤掉与目标文件明显不存在克隆关系或者明显存在克隆关系的源代码,得到细粒度过滤的结果,以减少后续语义特征矩阵提取的样本量,降低相似度匹配的时间开销,通过将克隆检测问题转换为图片相似度比较问题,基于图片的相似性得到克隆检测结果,从而达到语义克隆检测的效果,也即本发明能够降低匹配的时间开销,同时兼顾了大规模和语义克隆检测。
(2)进一步地,本发明的方法通过将代码转换为抽象语法树,再将抽象语法树转换为语义特征矩阵,通过抽取抽象语法树的边信息构造一个包含树结构信息的树表征矩阵(也即语义特征矩阵),将两个复杂的抽象语法树匹配算法转换为N×N的二维矩阵,再将其转换为图片进行比较,而不必直接进行语法树之间的匹配,避免了抽象语法树匹配算法的时间长及空间复杂度高的问题,进一步降低了匹配的时间开销。
(3)作为优选,由于抽象语法树的令牌节点均为叶子节点,树形结构中叶子节点之间不存在边,也即两个叶子节点之间边的数量为0,因此,删除语义特征矩阵中表示两个叶子节点之间边的数量的元素,以压缩语义特征矩阵的大小,降低计算量,进一步减小检测的时间开销。
(4)作为优选,通过以每个源代码块的哈希值为键,以源代码的文件名为值构建倒排索引字典,只要确定了代码的哈希值就可以确定该哈希值对应的多个源代码文件,可以使构建的字典尽可能的小,便于实现快速索引。
(5)作为优选,在构建倒排索引字典之前,通过对每个源代码进行代码令牌规范化,可以增强本方法对Type-2类型克隆检测的鲁棒性。
(6)本发明的方法与源代码的语言类型无关,适用于任意开发语言,通用性强;且本发明的方法不需要代码编译,检测范围广泛。
附图说明
图1为本发明提供的基于图片相似度的代码克隆检测方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明的基于图片相似度的代码克隆检测方法,主要包括如下步骤:
S1、构建源代码集的倒排索引字典,该倒排索引字典的键为每个源代码块的哈希值,倒排索引字典的值为源代码的文件名。
S2、计算待测目标文件的代码块哈希值,并以每个代码块的哈希值为键在倒排索引字典中进行搜索,得到对应的值,也即得到对应的源代码的文件名列表;该源代码的文件名列表作为粗粒度过滤的结果,被认为是与待测目标文件存在一定相似性的代码集合;源代码集中除该源代码的文件名列表外的其余源代码被认为是与待测目标文件明显不存在克隆关系。
S3、计算待测目标文件与S2中得到的源代码的文件名列表中每个源代码的代码块相似度K,若计算得到的代码块相似度K低于设定的第一克隆过滤阈值,则判断目标文件与对应的源代码不存在克隆关系;若计算得到的代码块相似度K高于设定的第二克隆过滤阈值/>,则判断目标文件与对应的源代码存在克隆关系;其中,计算得到的代码块相似度K在大于第一克隆过滤阈值/>且小于第二克隆过滤阈值/>的源代码文件名列表作为细粒度过滤的结果;其中,/>和/>根据经验选择。
S4、将S3中计算得到的代码块相似度K在大于第一克隆过滤阈值且小于第二克隆过滤阈值/>的源代码文件名列表中的每个源代码文件分别进行语义特征矩阵提取后,再分别对应转换为图片,以及将目标文件进行语义特征矩阵提取后,再转换为图片,分别计算目标文件与每个源代码文件转换的图片之间的图片相似度,得到克隆检测结果,也即在对应的每个源代码与待测目标文件之间是否有存在克隆关系。
具体地,S1中,构建源代码集的倒排索引字典包括:
S11、将每个源代码的每n行拼接为一个字符串,则每个源代码生成的代码块个数为:M-n+1,其中,M表示源代码的行数,不同的源代码对应的行数可能不同;
S12、计算每个代码块的哈希值,并以每个哈希值作为键,对应的源代码的文件名为值,构建源代码集的倒排索引字典。
作为优选,在S11之前,还包括S10:对每个源代码进行代码令牌规范化;具体地,提取源代码集中每个源代码的抽象语法树,并对抽象语法树中的变量名类型节点的代码令牌进行规范化,可以增强本方法对Type-2类型克隆检测的鲁棒性,具体为将变量名不同的同类型变量的变量名用统一的变量名代替,实现源代码集的代码令牌规范化。
具体地,S2中,计算待测目标文件的代码块哈希值包括:
将待测目标文件进行代码令牌规范化后,按照每n行拼接为一个字符串,并计算待测目标文件生成的代码块个数;然后计算每个代码块的哈希值。
具体地,S3中,假定目标文件为C1,生成的代码块个数为;S2中得到的源代码的文件名列表中的任一个候选代码为C2,生成的代码块个数为/>,则待测目标文件与S2中得到的源代码的文件名列表中每个源代码的代码块相似度K为:
S42、将抽象语法树转换为N×N的语义特征矩阵,其中,语义特征矩阵中的元素表示抽象语法树中节点/>指向节点/>的边的条数,也即语义特征矩阵中的元素表示抽象语法树中两个节点之间的边的数量;/>和/>取值分别为0,1,……,N-1,N为抽象语法树的节点的总数,包括类型节点的数量和令牌节点的数量。在本发明实施例中,包括53种类型节点以及14种令牌节点。
S43、将语义特征矩阵归一化后转换为对应的图片。其中,归一化方式为:
由于生成的语义特征矩阵为二维矩阵,将该矩阵转换为灰度图,也即代码的抽象语法树被转换成为一张灰度图片。
本发明实施例中,通过均方误差MSE算法计算两张图片的距离以衡量图片的相似度,也即待测目标文件转换后的图片与对应的每个源代码转换后的图片的相似度。若两张图片的均方误差值MSE值大于图片距离阈值/>,则判定待测目标文件与相应的源代码为非克隆代码对,否则为克隆代码对。
作为优选,由于令牌节点均为叶子节点,树形结构中叶子节点之间不存在边,也即两个叶子节点之间边的数量为0,因此,可以删除语义特征矩阵中表示两个叶子节点之间边的数量的元素,以压缩语义特征矩阵的大小,进一步降低计算量,以减小检测开销;本发明实施例中,67×67的语义特征矩阵可以压缩为53×67的矩阵。
本发明的方法通过构建源代码集的倒排索引字典,在倒排索引字典搜索与待测目标文件存在一定相似性的代码集合作为粗粒度过滤的结果,实现在大规模源代码集中快速过滤非克隆代码的效果;基于该粗粒度过滤的结果,再次过滤掉与目标文件明显不存在克隆关系的源代码以及与目标文件明显存在克隆关系的源代码,得到细粒度过滤的结果,以减少后续语义特征矩阵提取的样本量,降低相似度匹配的时间开销,通过将克隆检测问题转换为图片相似度比较问题,基于图片的相似性输出克隆检测结果,从而达到语义克隆检测的效果,从而达到大规模和语义克隆检测的目的。
进一步地,本发明的方法通过将代码转换为抽象语法树,再将抽象语法树转换为语义特征矩阵,通过抽取抽象语法树的边信息构造一个包含树结构信息的树表征矩阵(也即语义特征矩阵),将两个复杂的抽象语法树匹配算法转换为N×N的二维矩阵,再将其转换为图片进行比较,而不必直接进行语法树之间的匹配,避免了抽象语法树匹配算法的时间长及空间复杂度高的问题,进一步降低了匹配的时间开销。
按照本发明的另一方面,还提供了一种基于图片相似度的代码克隆检测系统,包括:
倒排索引字典构建模块,用于构建源代码集的倒排索引字典,倒排索引字典的键为每个源代码块的哈希值,值为源代码的文件名;
粗粒度过滤结果计算模块,用于计算待测目标文件的代码块哈希值,并以每个代码块的哈希值为键在倒排索引字典中搜索,得到对应的源代码的文件名列表;
细粒度过滤结果计算模块,用于计算待测目标文件与列表中每个源代码的代码块相似度K,若,则判断待测目标文件与对应的源代码不存在克隆关系;若/>,则判断待测目标文件与对应的源代码存在克隆关系;其中,/>为设定的第一克隆过滤阈值,为设定的第二克隆过滤阈值;
上述的每个模块用于执行实施例中的基于图片相似度的代码克隆检测方法的对应步骤。
按照本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现如实施例中的基于图片相似度的代码克隆检测方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于图片相似度的代码克隆检测方法,其特征在于,包括:
S1、构建源代码集的倒排索引字典,所述倒排索引字典的键为每个源代码块的哈希值,值为源代码的文件名;
S2、计算待测目标文件的代码块哈希值,并以每个代码块的哈希值为键在所述倒排索引字典中搜索,得到对应的源代码的文件名列表;
S3、计算待测目标文件与所述列表中每个源代码的代码块相似度K,若,则判断待测目标文件与对应的源代码不存在克隆关系;若/>,则判断待测目标文件与对应的源代码存在克隆关系;其中,/>为设定的第一克隆过滤阈值,/>为设定的第二克隆过滤阈值;
3.根据权利要求2所述的方法,其特征在于,S43中,将所述语义特征矩阵转换为对应的图片之前,还包括:删除所述语义特征矩阵中表示两个叶子节点之间边的条数的元素。
6.根据权利要求1所述的方法,其特征在于,S1中,构建源代码集的倒排索引字典包括:
S11、将源代码的每n行拼接为一个字符串,则每个源代码生成的代码块个数为:M-n+1,其中,M表示源代码的行数;
S12、计算每个代码块的哈希值,并以所述哈希值为键,对应的源代码的文件名为值,构建所述倒排索引字典。
7.根据权利要求6所述的方法,其特征在于,在S11之前,还包括步骤:
提取每个源代码的抽象语法树,并对所述抽象语法树中的变量名类型节点的代码令牌进行规范化;所述规范化包括将同类型变量的变量名用统一的变量名代替。
9.一种基于图片相似度的代码克隆检测系统,其特征在于,用于执行如权利要求1-8任一项所述的基于图片相似度的代码克隆检测方法,包括:
倒排索引字典构建模块,用于构建源代码集的倒排索引字典,所述倒排索引字典的键为每个源代码块的哈希值,值为源代码的文件名;
粗粒度过滤结果计算模块,用于计算待测目标文件的代码块哈希值,并以每个代码块的哈希值为键在所述倒排索引字典中搜索,得到对应的源代码的文件名列表;
细粒度过滤结果计算模块,用于计算待测目标文件与所述列表中每个源代码的代码块相似度K,若,则判断待测目标文件与对应的源代码不存在克隆关系;若/>,则判断待测目标文件与对应的源代码存在克隆关系;其中,/>为设定的第一克隆过滤阈值,为设定的第二克隆过滤阈值;
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310583348.7A CN116302089B (zh) | 2023-05-23 | 2023-05-23 | 基于图片相似度的代码克隆检测方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310583348.7A CN116302089B (zh) | 2023-05-23 | 2023-05-23 | 基于图片相似度的代码克隆检测方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116302089A true CN116302089A (zh) | 2023-06-23 |
CN116302089B CN116302089B (zh) | 2023-08-18 |
Family
ID=86817185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310583348.7A Active CN116302089B (zh) | 2023-05-23 | 2023-05-23 | 基于图片相似度的代码克隆检测方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302089B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435246A (zh) * | 2023-12-14 | 2024-01-23 | 四川大学 | 一种基于马尔可夫链模型的代码克隆检测方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110246968A1 (en) * | 2010-04-01 | 2011-10-06 | Microsoft Corporation | Code-Clone Detection and Analysis |
WO2012079230A1 (en) * | 2010-12-15 | 2012-06-21 | Microsoft Corporation | Intelligent code differencing using code clone detection |
JP2013257639A (ja) * | 2012-06-11 | 2013-12-26 | Ntt Data Corp | 構文解析を用いたソースコードの差分抽出方法およびシステム |
CN103988176A (zh) * | 2011-12-12 | 2014-08-13 | 株式会社日立制作所 | 软件分析程序和软件分析系统 |
CN106294139A (zh) * | 2016-08-02 | 2017-01-04 | 上海理工大学 | 一种软件代码中重复片段的检测提取方法 |
CN112381280A (zh) * | 2020-11-06 | 2021-02-19 | 北京航空航天大学 | 一种基于人工智能的算法预测方法 |
CN113626075A (zh) * | 2020-05-09 | 2021-11-09 | 北京奇虎科技有限公司 | 相似代码检测方法、装置、设备和计算机存储介质 |
CN114816519A (zh) * | 2022-04-26 | 2022-07-29 | 南京航空航天大学 | 基于抽象语法树及令牌的代码克隆检测的方法及应用 |
CN115309451A (zh) * | 2022-06-28 | 2022-11-08 | 腾讯科技(深圳)有限公司 | 代码克隆检测方法、装置、设备、存储介质及程序产品 |
CN115373737A (zh) * | 2022-07-06 | 2022-11-22 | 云南恒于科技有限公司 | 一种基于特征融合的代码克隆检测方法 |
CN115964080A (zh) * | 2023-01-28 | 2023-04-14 | 华南农业大学 | 基于可视化图像的代码克隆检测方法、系统、设备及介质 |
US20230153085A1 (en) * | 2021-11-15 | 2023-05-18 | Jpmorgan Chase Bank, N.A. | Systems and methods for source code understanding using spatial representations |
-
2023
- 2023-05-23 CN CN202310583348.7A patent/CN116302089B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110246968A1 (en) * | 2010-04-01 | 2011-10-06 | Microsoft Corporation | Code-Clone Detection and Analysis |
WO2012079230A1 (en) * | 2010-12-15 | 2012-06-21 | Microsoft Corporation | Intelligent code differencing using code clone detection |
CN103988176A (zh) * | 2011-12-12 | 2014-08-13 | 株式会社日立制作所 | 软件分析程序和软件分析系统 |
US20140331202A1 (en) * | 2011-12-12 | 2014-11-06 | Hitachi, Ltd. | Software Analysis Program and Software Analysis System |
JP2013257639A (ja) * | 2012-06-11 | 2013-12-26 | Ntt Data Corp | 構文解析を用いたソースコードの差分抽出方法およびシステム |
CN106294139A (zh) * | 2016-08-02 | 2017-01-04 | 上海理工大学 | 一种软件代码中重复片段的检测提取方法 |
CN113626075A (zh) * | 2020-05-09 | 2021-11-09 | 北京奇虎科技有限公司 | 相似代码检测方法、装置、设备和计算机存储介质 |
CN112381280A (zh) * | 2020-11-06 | 2021-02-19 | 北京航空航天大学 | 一种基于人工智能的算法预测方法 |
US20230153085A1 (en) * | 2021-11-15 | 2023-05-18 | Jpmorgan Chase Bank, N.A. | Systems and methods for source code understanding using spatial representations |
CN114816519A (zh) * | 2022-04-26 | 2022-07-29 | 南京航空航天大学 | 基于抽象语法树及令牌的代码克隆检测的方法及应用 |
CN115309451A (zh) * | 2022-06-28 | 2022-11-08 | 腾讯科技(深圳)有限公司 | 代码克隆检测方法、装置、设备、存储介质及程序产品 |
CN115373737A (zh) * | 2022-07-06 | 2022-11-22 | 云南恒于科技有限公司 | 一种基于特征融合的代码克隆检测方法 |
CN115964080A (zh) * | 2023-01-28 | 2023-04-14 | 华南农业大学 | 基于可视化图像的代码克隆检测方法、系统、设备及介质 |
Non-Patent Citations (2)
Title |
---|
YAFANG WANG等: "Image-Based Clone Code Detection and Visualization", 《2019 INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND ADVANCED MANUFACTURING (AIAM)》 * |
YUEMING WU等: "VulCNN: an image-inspired scalable vulnerability detection system", 《ICSE \'22: PROCEEDINGS OF THE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117435246A (zh) * | 2023-12-14 | 2024-01-23 | 四川大学 | 一种基于马尔可夫链模型的代码克隆检测方法 |
CN117435246B (zh) * | 2023-12-14 | 2024-03-05 | 四川大学 | 一种基于马尔可夫链模型的代码克隆检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116302089B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021088385A1 (zh) | 一种在线日志解析方法、系统及其电子终端设备 | |
CN109445834B (zh) | 基于抽象语法树的程序代码相似性快速比较方法 | |
US10671586B2 (en) | Optimal sort key compression and index rebuilding | |
CN107797916B (zh) | Ddl语句审核方法和装置 | |
CN116302089B (zh) | 基于图片相似度的代码克隆检测方法、系统及存储介质 | |
CN113656807A (zh) | 一种漏洞管理方法、装置、设备及存储介质 | |
CN111339297A (zh) | 网络资产异常检测方法、系统、介质和设备 | |
CN115357904B (zh) | 一种基于程序切片和图神经网络的多类漏洞检测方法 | |
CN113779272A (zh) | 基于知识图谱的数据处理方法、装置、设备及存储介质 | |
CN113987190B (zh) | 一种数据质量校验规则提取方法及系统 | |
US20230418578A1 (en) | Systems and methods for detection of code clones | |
CN111562920A (zh) | 小程序代码相似度确定方法、装置、服务器及存储介质 | |
CN111881300A (zh) | 面向第三方库依赖的知识图谱构建方法及系统 | |
CN117453646A (zh) | 融合语义与深度神经网络的内核日志联合压缩与查询方法 | |
CN112612810A (zh) | 慢sql语句识别方法及系统 | |
CN115048913B (zh) | 一种命令处理方法、装置和电子设备 | |
Zhang et al. | A program plagiarism detection model based on information distance and clustering | |
CA3144052A1 (en) | Method and apparatus for recognizing new sql statements in database audit systems | |
CN118312524B (zh) | 表召回方法、装置、电子设备及介质 | |
CN118157970B (zh) | 一种基于编辑距离的suricata规则相似度计算方法 | |
CN117435246B (zh) | 一种基于马尔可夫链模型的代码克隆检测方法 | |
CN117792801B (zh) | 一种基于多元事件分析的网络安全威胁识别方法及系统 | |
JP6783741B2 (ja) | 距離測定装置、通信システム、作成装置及び距離測定プログラム | |
CN115168399B (zh) | 基于图形化界面的数据处理方法、装置、设备及存储介质 | |
CN113064597B (zh) | 一种冗余代码的识别方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |