System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于跨語言代碼程序分類,具體涉及一種跨語言代碼程序分類、分類模型訓練方法及裝置。
技術介紹
1、在當今信息技術迅猛發展的背景下,軟件開發變得愈發復雜和多樣化?,F代軟件工程中,源代碼的重用和跨語言代碼的協作已成為普遍現象。不同編程語言各有其獨特的語法、結構和功能優勢,因此在一個項目中混合使用多種編程語言可以大幅提高開發效率和靈活性。然而,這也給跨語言源代碼相似性檢測帶來了巨大挑戰。識別和檢測不同編程語言之間的代碼克隆是提高軟件質量、優化代碼重用和防止代碼冗余的重要任務。
2、傳統的代碼程序分類方法大多針對單一編程語言,難以應對多語言環境中的代碼相似性問題。隨著軟件項目規模的不斷擴大,代碼的復雜性和多樣性也在增加,單一語言的程序分類工具在面對多語言代碼庫時顯得力不從心??缯Z言代碼程序分類技術應運而生,旨在解決不同編程語言之間的代碼相似性問題,確保代碼在不同語言環境下的一致性和可重用性。
3、目前在跨語言源代碼相似性檢測領域,盡管已有諸多研究取得了一定的進展,比如申請號為cn202311418645.2的“一種面向代碼相似性檢測的跨編程語言遷移方法和系統”其通過聚類實現代碼相似性檢測,但是基于不同編程語言的復雜性、代碼語義理解的難度其相似性分類準確性有待提高。
技術實現思路
1、本專利技術為了解決現有跨語言代碼分類存在相似性分類準確性不高的問題,提出了一種跨語言代碼程序分類、分類模型訓練方法及裝置,其可提高跨語言代碼相似性分類的準確性。
2、
3、本專利技術第一方面公開一種跨語言代碼程序分類模型訓練方法,括以下步驟:
4、獲取代碼片段對集,所述代碼片段對集包括第一代碼片段對和第二代碼片段對,所述第一代碼片段對包括兩個編程語言不同但功能相似的代碼片段,所述第二代碼片段對包括兩個編程語言不同且功能不相似的代碼片段;
5、將所述代碼片段對集中的所有代碼片段解析為抽象語法樹結構并根據所述抽象語法樹結構得到該代碼片段的圖結構特征向量;
6、將所述代碼片段對集中的所有代碼片段轉化為token特征向量;
7、對代碼片段的token特征向量及其對應的圖結構特征向量進行融合,得到融合特征向量;
8、將所述第一代碼片段對和第二代碼片段對對應的融合特征向量輸入分類模型中進行訓練。
9、本專利技術第二方面公開一種跨語言代碼程序分類模型訓練裝置,包括依次通信連接的第一存儲器和第一控制器,所述第一存儲器上存儲有第一計算機程序,所述第一控制器用于讀取所述第一計算機程序,執行第一方面中所述的一種跨語言代碼程序分類模型訓練方法。
10、本專利技術第三方面公開一種跨語言代碼程序分類方法,其特征在于,包括以下步驟:
11、獲得待分類代碼片段對,所述待分類代碼片段對包括兩個編程語言的代碼片段;
12、對所述待分類代碼片段對中的兩個代碼片段解析為抽象語法樹結構并根據所述抽象語法樹結構得到該代碼片段的圖結構特征向量;
13、對所述待分類代碼片段對中的兩個代碼片段轉化為token特征向量;
14、對token特征向量及其對應的圖結構特征向量進行融合,得到待分類代碼片段對的融合特征向量;
15、將待分類代碼片段對的融合特征向量輸入至采用第一方面中所述的方法訓練得到的分類模型中得到該待分類代碼片段對的分類結果,所述分類結果為功能相似或者功能不相似。
16、本專利技術第四方面公開一種跨語言代碼程序分類裝置,包括依次通信連接的第二存儲器和第二控制器,所述第二存儲器上存儲有第二計算機程序,所述第二控制器用于讀取所述第二計算機程序,執行第三方面中所述的一種跨語言代碼程序分類方法。
17、本專利技術的有益效果是:
18、本專利技術通過將不同編程語言的代碼片段轉化為token特征向量和圖結構特征向量,再基于融合token特征向量和圖結構特征向量后的融合特征向量實現代碼分類識別,在將不同編程語言的源代碼表征為統一的高維向量的同時,保持源代碼的語法和結構信息,提高了跨語言代碼相似性分類的準確性。
本文檔來自技高網...【技術保護點】
1.一種跨語言代碼程序分類模型訓練方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述獲取代碼片段對集之后還包括:
3.根據權利要求1所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述將所述代碼片段對集中的所有代碼片段轉化為token特征向量包括:
4.根據權利要求1所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述將所述代碼片段對集中的所有代碼片段解析為抽象語法樹結構并根據所述抽象語法樹結構得到該代碼片段的圖結構特征向量包括:
5.根據權利要求4所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述圖卷積神經網絡包括:
6.根據權利要求4所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述將代碼片段轉化為抽象語法樹包括:
7.根據權利要求6所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述將所述抽象語法樹中的節點通過查詢公共詞匯表轉換為一個唯一的序號包括:
8.一種跨語言代碼程序分類模型訓練裝置,包括依次
9.一種跨語言代碼程序分類方法,其特征在于,包括以下步驟:
10.一種跨語言代碼程序分類裝置,包括依次通信連接的第二存儲器和第二控制器,所述第二存儲器上存儲有第二計算機程序,其特征在于:所述第二控制器用于讀取所述第二計算機程序,執行權利要求9所述的一種跨語言代碼程序分類方法。
...【技術特征摘要】
1.一種跨語言代碼程序分類模型訓練方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述獲取代碼片段對集之后還包括:
3.根據權利要求1所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述將所述代碼片段對集中的所有代碼片段轉化為token特征向量包括:
4.根據權利要求1所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述將所述代碼片段對集中的所有代碼片段解析為抽象語法樹結構并根據所述抽象語法樹結構得到該代碼片段的圖結構特征向量包括:
5.根據權利要求4所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述圖卷積神經網絡包括:
6.根據權利要求4所述的一種跨語言代碼程序分類模型訓練方法,其特征在于,所述將...
【專利技術屬性】
技術研發人員:吳霞,張岱,陳亮,湯強,吳昊,廖非平,
申請(專利權)人:中國鐵塔股份有限公司四川省分公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。