[發明專利]代碼克隆檢測方法、裝置、設備、存儲介質及程序產品在審
| 申請號: | 202210784064.X | 申請日: | 2022-06-28 |
| 公開(公告)號: | CN115309451A | 公開(公告)日: | 2022-11-08 |
| 發明(設計)人: | 吳鋒;李文科;楊永強;吳佳駿;周凡 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F8/75 | 分類號: | G06F8/75;G06F8/41;G06K9/62 |
| 代理公司: | 北京三高永信知識產權代理有限責任公司 11138 | 代理人: | 祝亞男 |
| 地址: | 518057 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 代碼 克隆 檢測 方法 裝置 設備 存儲 介質 程序 產品 | ||
本申請實施例公開了一種代碼克隆檢測方法、裝置、設備、存儲介質及程序產品,屬于計算機技術領域。該方法包括:獲取代碼源文件的語法信息以及語義信息;對語法信息以及語義信息進行信息融合,得到代碼融合信息;對代碼融合信息進行特征提取,得到代碼源文件的特征向量;基于各個代碼源文件的特征向量進行特征對比,得到克隆檢測結果。基于對源代碼的語法分析和語義分析結果進行克隆檢測,既能夠有效甄別微小的語法變化對相似度的影響,也能夠有效識別出同質異構的代碼片段,有助于提高各種類型的克隆代碼的檢測準確率。
技術領域
本申請實施例涉及計算機技術領域,特別涉及一種代碼克隆檢測方法、裝置、設備、存儲介質及程序產品。
背景技術
代碼克隆檢測是最基本的軟件工程技術之一,主要應用于代碼復用、安全與軟件工程研效管理。代碼克隆可以大致劃分為四類:Type1、除空格、換行、注釋等,其它代碼內容完全一致;Type 2、除變量、方法、類名等重命名以外,其它代碼內容完全一致;Type 3、代碼片段存在局部修改,或調整了語句、模塊順序;Type 4、代碼片段不一致但其語義一致、實現功能一致。
相關技術中的代碼克隆檢測主要通過對代碼的文本進行簡單的預處理并整體哈希處理,計算相似度。然而,上述方法只能夠支持前兩種類型的克隆檢測,檢測準確率較低,泛化能力弱,存在識別結果的誤報或漏報。
發明內容
本申請實施例提供了一種代碼克隆檢測方法、裝置、設備、存儲介質及程序產品,有助于提高各種類型的克隆代碼的檢測準確率。所述技術方案如下:
一方面,本申請提供了一種代碼克隆檢測方法,所述方法包括:
獲取代碼源文件的語法信息以及語義信息,所述語法信息用于指示代碼的語法結構,所述語義信息用于指示代碼的含義;
對所述語法信息以及所述語義信息進行信息融合,得到代碼融合信息;
對所述代碼融合信息進行特征提取,得到所述代碼源文件的特征向量;
基于各個代碼源文件的所述特征向量進行特征對比,得到克隆檢測結果,所述克隆檢測結果用于指示所述代碼源文件之間的相似度。
另一方面,本申請提供了一種代碼克隆檢測裝置,所述裝置包括:
獲取模塊,用于獲取代碼源文件的語法信息以及語義信息,所述語法信息用于指示代碼的語法結構,所述語義信息用于指示代碼的含義;
信息融合模塊,用于對所述語法信息以及所述語義信息進行信息融合,得到代碼融合信息;
特征提取模塊,用于對所述代碼融合信息進行特征提取,得到所述代碼源文件的特征向量;
相似度評價模塊,用于基于各個代碼源文件的所述特征向量進行特征對比,得到克隆檢測結果,所述克隆檢測結果用于指示所述代碼源文件之間的相似度。
另一方面,本申請提供了一種計算機設備,所述計算機設備包括處理器和存儲器;所述存儲器中存儲有至少一段程序,所述至少一段程序由所述處理器加載并執行以實現如上述方面所述的代碼克隆檢測方法。
另一方面,本申請提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質中存儲有至少一條計算機程序,所述計算機程序由處理器加載并執行以實現如上述方面所述的代碼克隆檢測方法。
根據本申請的一個方面,提供了一種計算機程序產品或計算機程序,該計算機程序產品或計算機程序包括計算機指令,該計算機指令存儲在計算機可讀存儲介質中。計算機設備的處理器從計算機可讀存儲介質讀取該計算機指令,處理器執行該計算機指令,使得該計算機設備執行上述方面的各種可選實現方式中提供的代碼克隆檢測方法。
本申請實施例提供的技術方案至少包括以下有益效果:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210784064.X/2.html,轉載請聲明來源鉆瓜專利網。





