《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于改進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.xxav2194.com/resource/share/2000004907





作者信息:

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

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

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

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


微信圖片_20210517164139.jpg

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产午夜激无码av毛片| 小小的日本三电影免费观看| 亚洲第一成年免费网站| z0z0z0女人极品另类视频| 最近中文字幕mv在线视频www| 国产亚洲欧美精品久久久| 三年片在线观看免费观看大全中国| 狠狠色丁香婷婷综合久久片| 国产精品亚洲欧美大片在线看| 久久精品亚洲综合| 美女扒了内裤让男人桶爽视频| 在线视频国产99| 亚洲乱人伦在线| 精品一区二区高清在线观看| 国产精品女在线观看| 久久久久久AV无码免费看大片| 男女做爽爽视频免费观看| 国产精品无码专区在线观看| 一级二级三级黄色片| 日韩精品电影一区亚洲| 午夜爽爽爽男女免费观看影院 | 亚1州区2区三区4区产品| 色妞色综合久久夜夜| 国产精品国产三级国产AV主播| 久久精品无码专区免费东京热| 七次郎在线视频观看精品| 青青热久久久久综合精品| 成人欧美一区二区三区黑人| 八戒网站免费观看视频| 2022最新国产在线| 无码欧精品亚洲日韩一区| 亚洲色欧美色2019在线| 国产精品www| 婷婷综合激六月情网| 亚洲国产精品尤物yw在线观看| 青青草原精品国产亚洲av| 国产精品视频不卡| 中日韩欧美电影免费看| 欧美激情一区二区三区成人 | 麻豆精品传媒成人精品| 国产精品天堂avav在线|