《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于改進WL圖核的代碼克隆檢測方法
基于改進WL圖核的代碼克隆檢測方法
網絡安全與數據治理 3期
班必奐1,2,徐 云2,3
(1.中國科學技術大學 大數據學院,安徽 合肥230026; 2.安徽省高性能計算重點實驗室,安徽 合肥230026; 3.中國科學技術大學 計算機科學與技術學院,安徽 合肥230026)
摘要: 基于程序依賴圖(Program Dependency Graph,PDG)的代碼克隆檢測方法是檢測代碼克隆的重要方法之一,近年來提出的基于Weisfeiler-Lehman(WL)圖核迭代的近似圖匹配方法在克隆檢測中取得了較好的效果,但PDG中少量頂點的差異會隨著圖核迭代傳播到越來越多的頂點,從而導致算法召回率的下降。為此,針對WL圖核在克隆檢測應用中存在的問題,提出了一種基于改進WL圖核的代碼克隆檢測方法,將WL圖核迭代過程中采用的普通哈希算法替換為局部敏感哈希,同時引入向量的相似性度量方法,進一步提升了對PDG近似子結構的識別能力。實驗結果表明,改進后的方法不僅可以檢測出更多的差異克隆對,同時還保持了良好的精度和時間性能。
中圖分類號: TP311.5
文獻標識碼: A
DOI: 10.20044/j.csdg.2097-1788.2022.03.010
引用格式: 班必奐,徐云. 基于改進WL圖核的代碼克隆檢測方法[J].網絡安全與數據治理,2022,41(3):60-66.
An improved WL graph kernel-based code clone detection method
Ban Bihuan1,2,Xu Yun2,3
(1.School of Data Science,University of Science and Technology of China,Hefei 230026,China; 2.Key Laboratory of High Performance Computing of Anhui Province,Hefei 230026,China; 3.School of Computer Science and Technology,University of Science and Technology of China,Hefei 230026,China)
Abstract: Code clone detection based on Program Dependency Graph(PDG) is one of the important methods in code clone detection domain. In recent years, a code clone detector that based on Weisfeiler-Lehman(WL) graph kernel has achieved success in detecting code clones. However, several different vertices in the PDG will ″spread″ to the whole PDG with iterations and finally results in a decline in recall rate. Therefore, an improved WL kernel-based clone detector is proposed to address the problem of the WL kernel when applied in clone detections. The ordinary hash algorithm used in the iterations of WL kernel is replaced with the local sensitive hash algorithm, and the vector similarity measure approach is employed, which enhances the ability to identify the similar PDG sub-structures. The experimental results show that compared to the original WL graph kernel-based detector, the improved method can not only detect more clones but also keep good accuracy and a low computing time.
Key words : code clone detection;program dependency graph;Weisfeiler-Lehman kernel

0 引言

在實際的軟件系統開發過程中,開發人員出于提高開發效率或者降低軟件錯誤風險的原因,通常會將其他模塊中功能相同或者相近的代碼片段通過復制—修改(或不修改)—粘貼的模式引入到當前正在開發的模塊中,這些粘貼而來的功能相同或相似的代碼片段在學術界通常被稱為克隆代碼[1]。大量的研究表明,過多的克隆代碼會給軟件系統帶來維護成本提高[2]和Bug蔓延[3]等問題。例如,假設某一段代碼中存在Bug并且這段代碼被復制粘貼在不同的位置,那么這個Bug將會隨著這些克隆代碼在整個軟件中傳播,進而增加了維護的難度。因此,檢測出軟件系統中的克隆代碼并對其進行統一管理是非常有必要的。

隨著代碼克隆檢測技術的不斷發展,高級別代碼克隆(即Type-3和Type-4克隆)的檢測成為當前的研究熱點之一。由于高級別克隆代碼往往在復制粘貼之后還進行了一些修改,因此也更有可能存在Bug[4]。另外,修改所導致的差異性也使得這一類型的克隆更加難以被檢測。

得益于程序依賴圖(Program Dependency Graph,PDG)中所包含的大量語法結構信息和語義信息,基于PDG的克隆檢測方法在檢測高級別克隆上更具優勢,能夠檢測出更多的結構相似但文本差異較大的高級別克隆代碼。但在已有的方法中,采用精確圖匹配算法的CCSharp[5]、GPLAG[6]等克隆檢測方法存在時間性能差和召回率低的缺點,而采用Weisfeiler-Lehman(WL)圖核進行近似圖匹配計算的CCGraph[7],受限于節點初始標簽的單一性和WL圖核迭代過程中對近似子結構識別能力的缺失,召回率也相對較低。為此,本文針對WL圖核算法在PDG克隆檢測應用中存在的缺陷,提出了一種改進思路:首先利用語法分析技術將PDG節點所包含的源代碼信息解析為特征向量的形式來作為該節點的初始標簽,使其能夠保留更多的語義信息;然后通過引入局部敏感哈希技術提升PDG中近似子結構的識別能力,進而提升高級別克隆的召回率。





本文詳細內容請下載http://m.jysgc.com/resource/share/2000004907





作者信息:

班必奐1,2,徐  云2,3

(1.中國科學技術大學 大數據學院,安徽 合肥230026;

2.安徽省高性能計算重點實驗室,安徽 合肥230026;

3.中國科學技術大學 計算機科學與技術學院,安徽 合肥230026)


微信圖片_20210517164139.jpg

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 一级一级人与动毛片| 五月婷婷久久综合| 精品无码国产自产拍在线观看| 国产在线高清精品二区| 综合558欧美成人永久网站| 在线免费黄色网址| sao虎新版高清视频在线网址| 成年人毛片视频| 久久亚洲国产精品五月天婷| 最近中文字幕完整国语视频 | 性欧美人与动物| 午夜老司机福利| 蜜桃成熟时3之蜜桃仙子电影| 在线无码VA中文字幕无码| 一本色道久久88综合亚洲精品高清| 无码一区二区三区中文字幕 | 国产三香港三韩国三级不卡| 黄色a级片在线| 国产成人精品一区二区三区无码 | 推油少妇久久99久久99久久| 久久九九国产精品怡红院| 日韩理论电影在线| 五月天婷婷综合网| 末成年美女黄网站色大片连接 | 美妇乱人伦交换小说| 国产乱子伦精品免费无码专区| 777米奇影视盒| 日本www高清| 亚洲另类欧美综合久久图片区| 欧美黑人巨大3dvideo| 另类视频第一页| 成人午夜免费福利视频| 国内自拍视频一区二区三区| jlzzjlzz亚洲乱熟在线播放| 婷婷五月综合激情| 久久精品一本到99热免费| 欧美日韩精品久久久免费观看| 亚洲综合无码AV一区二区| 牛牛影院毛片大全免费看| 人妻影音先锋啪啪av资源| 老少交欧美另类|