• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于增強控制流圖與孿生網絡架構的代碼克隆檢測方法

    2025-07-28 00:00:00熊曙初熊曙初a?,段金焱a,尹璐,曾智勇?(湖南工商大學a.計算機學院;b.前沿交叉學院)
    計算機應用研究 2025年7期
    關鍵詞:代碼克隆語義

    關鍵詞:控制流圖;孿生網絡架構;代碼表征;語義相似性;克隆檢測中圖分類號:TP311 文獻標志碼:A 文章編號:1001-3695(2025)07-028-2132-09doi:10.19734/j. issn.1001-3695.2024.11.0441

    Abstract:Toaddresstheissues of mising contextual information and weak semantic learning capabilities inexisting code clone detection methods,this paper proposedamethod basedonanenhancedcontrolflowgraph(ECFG)and twin network architecture.Firstly,itdesignedECFG,whichembeddedcross-nodecorelationedges tostrenghencontextualawareness. Then,itintroducedCGSMN,asemanticmatching modelbasedontwinnetworks.Thismodelintegratedamulti-headatntion mechanism to extractkeyinformationfromthenodes,thenimprovedtherelational graphatentionnetwork tocapture nternode associationsand generate graph feature vectors.Finall,it explored thesemanticrelationships between thesefeature vectorsandcomputedthesemanticsimilarity.Empirical evaluationwasconductedon tworepresentative datasets.Theresults show that,compared to methods such as ASTNN,FA-AST,and DHAST,the F1 -score on the BigCloneBench dataset improves by0.5 to15.5percentage points,andby1.5to16.5percentage pointsonthe GogleCode Jamdataset,demonstrating the effectiveness of the proposed method for semantic clone detection.

    Key words:controlflow graph;siamese neural network;coderepresentation;codesemantic similarity;codeclonedetection

    0 引言

    近年來,開源文化的蓬勃發(fā)展催生了一系列以協作共享為理念的開發(fā)者社群,對軟件開發(fā)模式產生顛覆性改變[1],軟件代碼的復制、粘貼和修改等克隆模式成為一種普遍且高效的實踐。然而,這種便捷性背后隱藏著不容忽視的軟件安全危機。據《2024年開源安全和風險(OSSRA)報告)》2表明,部分軟件項目中,克隆代碼比例高達 50% ,且其中 84% 的代碼庫存在漏洞風險??寺〈a的普遍存在不僅放大了軟件開發(fā)中的冗余問題,甚至將缺陷代碼擴散至整個系統,風險如滾雪球般的累積,嚴重威脅軟件的安全性和穩(wěn)定性。因此,克隆代碼的精準判別尤為重要。

    Bellon等人[3]依據代碼克隆的相似度大小,將其劃分為四種類型:直接復制(類型一)、變量重命名(類型二)修改增刪語句(類型三)和語義相似但結構迥異的變體(類型四)。從類型一到類型四,相似度逐漸降低,檢測復雜度由簡單的直觀匹配邁向更深層次的語義理解,精準檢測的難度逐步增加。近年來,針對前三類代碼克隆的研究已取得較為豐碩的成果[4\~7]。然而,隨著軟件工程任務日益復雜,語義相似但結構迥異的克隆代碼(類型四)呈現出多樣性、復雜性,給克隆檢測帶來了新的挑戰(zhàn)。傳統檢測方法在處理語義等價而結構形式多樣的情況時力有未逮,其檢測的準確性、有效性亟待深入研究[8]。鑒于此,探究代碼結構與語義表達的關聯機理,捕捉代碼的深層信息,構建具備語義學習力及辨析力的克隆檢測模型,對于實現復雜語義克隆的精準檢測具有極其重要的意義。

    目前,代碼克隆檢測多以代碼表征與語義學習結合為研究視角[9,10]。在代碼表示方面:邏輯語義信息強調代碼執(zhí)行流程,是理解代碼功能語義的基礎;數據依賴信息突出變量傳遞及跨語句關聯,是理解代碼上下文語義的重點。綜合考量這兩方面的信息,是準確、全面表達代碼復雜語義的關鍵。研究[1]表明,控制流圖(controlflowgraph,CFG)作為一種用于描述語句執(zhí)行邏輯的代碼表示形式,能夠提供完整的代碼順序、分支和循環(huán)等邏輯語義信息,具有獨特的邏輯語義表達優(yōu)勢。然而,CFG本身僅關注語句間的直接控制關系,忽略了數據和變量依賴等跨語句的上下文關聯。例如,2.1.1節(jié)中的代碼語句,Fileifp σ=σ newFile(src)和fis.close分別表示文件流的創(chuàng)建和關閉,若不結合前者語句,后者的語義難以準確判定。這種上下文信息的缺失,限制了CFG在代碼語義表示上的表達能力。

    此外,現有的代碼語義學習方法大多基于圖神經網絡技術,通過圖結構的局部信息傳遞,學習節(jié)點和子圖特征,在簡單圖的表示上較為有效。然而,在處理語義相似但結構迥異的代碼克隆時,單一的圖神經網絡方法難以充分捕捉和學習深層語義特征,導致語義學習能力弱,且在判斷圖與圖間的相似性時,往往依賴于額外的度量方法,表現出語義相似度辨析能力不足的問題。而孿生網絡作為一種深度學習架構,融入了對比學習的思想,能夠優(yōu)化特征構造,被廣泛應用于機器視覺領域[12]。但代碼的語義與圖像“直來直往”的表達相比,更為隱晦且復雜多變。因此,基于淺層特征的孿生網絡模型,無法適用于代碼克隆檢測任務的深層語義學習及辨析。

    為了解決上述問題,本文從表征優(yōu)化和語義學習視角出發(fā),提出了一種基于增強控制流圖與孿生網絡架構的代碼克隆檢測方法ECFG-CGSMN。其主要貢獻為:

    a)在代碼表示方面,提出一種增強控制流圖(enhancedcontrolflowgraph,ECFG)的代碼表示方法。該方法通過在控制流圖中嵌入節(jié)點間的跨節(jié)點關聯信息,強化控制流圖對上下文信息的感知,增強語義表示能力,并生成隱含代碼語法和語義信息的向量。

    b)在語義學習方面,提出一種基于孿生網絡架構的代碼語義匹配模型CGSMN(code graph semantic matchingnetwork)。模型設計基于孿生網絡的語義匹配架構,引人注意力機制獲取局部和全局語義特征,提升對復雜語義的捕獲能力;通過共享參數的訓練策略,優(yōu)化語義特征空間分布,并聯合雙向長短期記憶網絡與多層感知機,進行語義匹配并計算語義相似度,增強語義辨析能力。

    c)在BigCloneBench和GoogleCodeJam兩個開源數據集上進行實驗,并結合當前主要克隆檢測方法進行對比分析,驗證ECFG-CGSMN方法的有效性。

    1相關工作

    1.1 代碼結構表征

    代碼結構表征旨在將源代碼的結構及語義信息以抽象的形式呈現,從結構化的視角深入理解代碼的內在邏輯和特性。當前,代碼結構表征主要分為基于樹的結構和基于圖的結構兩類。

    抽象語法樹(abstractsyntaxtree,AST)是一種較早用于描述代碼句法結構的抽象表征結構,通過分層的樹狀結構表達源代碼的語法信息。 CDLH[9] 是較早使用AST結構的方法,它將程序的AST轉換為二叉樹后使用LSTM提取二叉樹中的代碼特征。ASTNN[13]方法將源代碼分解成tokens,并根據編程語言的語法規(guī)則將tokens組織成AST。雖然基于AST的表征方法描述了代碼的語法特征,但AST缺乏重要的語義特征,限制了此類方法的表現力和應用范圍。

    近年來,隨著圖結構數據在自然語言處理領域中的廣泛應用及優(yōu)異表現,許多研究者開始關注基于圖的結構表征方法。FA-AST[14]、DHEAST[15]、TreeCen[16]等方法通過為樹結構添加依賴信息生成圖結構。此類方法雖在一定程度上捕捉到語義關系,但通常依賴于特定規(guī)則將AST生成異構圖,過程較為復雜,限制了其靈活性。EA-HOLMES[17]和CCGraph[18]等方法將代碼轉換為程序依賴圖(programdependence graph,PDG)。盡管PDG能夠直接通過代碼解析工具獲得,但它僅描述了語句間的依賴關系,沒有完整地呈現代碼塊內語句的順序、分支和循環(huán)的結構關系,而此類結構關系是理解語句功能表達的重要上下文信息。 DeepSim[19] 和 SCDetector[20]等方法探索了基于CFG的代碼表征形式,并將部分CFG特征與其他形式的特征結合,實現代碼的語義表達。

    綜上所述,CFG是一種豐富表達代碼邏輯語義信息的表征形式。然而,現有基于CFG的方法僅聚焦于其在邏輯結構上的優(yōu)勢,忽視了它存在上下文信息缺失的問題。因此,優(yōu)化CFG,進一步探究其在代碼表征上的有效性,具有較強的學術價值。

    1.2 代碼克隆檢測

    代碼克隆檢測作為軟件工程領域中重要的研究任務,在軟件開發(fā)、維護以及優(yōu)化等多方面扮演著關鍵角色。當前,代碼克隆檢測研究主要分為傳統算法的方法和深度學習的方法兩類。

    傳統算法的方法先將源代碼轉換為一種便于分析的形式(字符、解析樹、程序依賴圖等),后計算不同代碼片段之間的相似度。Roy等人[4提出Nicad方法,將代碼看作文本并使用LCS(longestcommonsubsequence)算法逐行比對代碼。Kamiya等人[5]提出CCFinder方法,使用后綴樹匹配算法判斷克隆關系。DECKARD方法[21]使用局部敏感哈希算法匹配子樹進行克隆檢測。

    深度學習的方法將源代碼轉換為中間表示,再利用神經網絡模型提取特征,并計算特征向量間的相似度。Li等人[22]提出CCLearner方法,首次利用神經網絡訓練tokens并對其進行相似性分析。Zhang等人[13]提出ASTNN,使用雙向RNN提取分割后的AST特征,進行克隆檢測。此類方法雖實現代碼的批處理,但仍難以檢測類型四語義克隆。Wei等人[9]提出了CDLH方法,采用長短期記憶網絡(long short-termmemory,LSTM)挖掘詞法和句法信息。Zhao等人[19]提出DeepSim方法,基于CFG來構建語義特征矩陣,并利用前饋神經網絡構造空間向量。Fang等人[23]融合AST中句法特征和CFG中語義特征,并運用深度神經網絡進行克隆檢測。此類方法通過融合CFG語義和其他特征,雖能夠檢測簡單的語義克隆,但由于捕獲語義信息不全,其檢測精確度有較大的提升空間。Wu等人[20]提出 SCDetector方法,融合 tokens 和CFG 特征,構建基于門控循環(huán)單元(gatedrecurrentunit,GRU)的孿生網絡架構模型,進行語義克隆檢測。Mehrotra等人[17]提出EA-HOLMES方法,簡化PDG的節(jié)點和邊信息,并結合注意力與孿生網絡架構設計克隆檢測模型,對代碼的相似性進行度量等。

    綜上所述,傳統算法的方法高度依賴精確的模式定義,泛化性不佳且語義學習和辨析效果有限,逐漸被基于深度學習的方法替代。深度學習的方法試圖通過神經網絡挖掘代碼的語義特征,但其基礎模型架構往往難以表征代碼中的交互信息,復雜語義學習能力較弱[24]。因此,探究基于深度學習的模型優(yōu)化方法,強化代碼語義學習及辨析,具有較強的理論意義及實際價值。

    2 方法設計

    有效表征代碼結構、準確辨析語義是代碼檢測任務中的兩個關鍵挑戰(zhàn)[25]??刂屏鲌D雖可表達代碼的邏輯語義,但忽視了語句間的跨節(jié)點依賴關系,而此類跨依賴關聯是理解代碼語義,有效表征代碼結構不可或缺的要素。同時,現有語義學習方法仍需進一步強化語義學習及辨析能力,以應對復雜語義克隆挑戰(zhàn)。針對以上問題,本文從表征優(yōu)化和語義學習優(yōu)化的視角出發(fā),提出一種基于增強控制流圖與孿生網絡架構的代碼克隆檢測方法,其整體框架如圖1所示。

    該方法主要由兩個部分組成:a)增強控制流圖(ECFG)的圖結構表示。首先對克隆代碼片段進行預處理,分析代碼語義與結構關聯的機理,在控制流圖中嵌人數據依賴關系,生成ECFG,以增強跨語句關聯信息。其次對ECFG進行規(guī)范化處理,生成圖數據。b)基于孿生網絡架構的CSGMN模型。模型由節(jié)點特征表征層、圖嵌入表征層、語義匹配層、計算相似度四個模塊構成。節(jié)點特征表征層引人多頭注意力機制,捕捉節(jié)點中的關鍵tokens,生成與節(jié)點相對應的局部語義表征。圖嵌人表征層結合節(jié)點之間的關聯信息,構建關系圖注意力網絡,生成融合局部與全局結構信息的圖語義向量。圖語義匹配層由雙向長短期記憶網絡和多層感知機組成。雙向長短期記憶網絡并行處理兩個圖語義向量,以捕捉更豐富的圖語義信息,生成一個聯合向量;多層感知機主要計算聯合向量之間的相似度,以此檢測是否屬于克隆。

    圖1本文方法整體框架Fig.1Overall framework of proposed method

    2.1增強控制流圖的圖結構表示

    CFG雖能完整表達代碼的邏輯語義信息,但跨語句依賴關聯隱性表達或不表達,導致可能忽視關鍵的上下文語義信息,限制了代碼語義的理解[26],而數據依賴關系能夠突出表達跨語句關聯信息。因此,本文從優(yōu)化代碼結構表示的視角出發(fā),針對控制流圖存在上下文信息缺失的問題,提出一種增強控制流圖的結構表示方法。

    2.1.1構建ECFG

    本文研究發(fā)現,DDG(datadependencegraph)結構通過描繪變量之間的依賴鏈,涵蓋了數據流動過程中的關鍵上下文信息,能有效呈現跨越多個節(jié)點的數據依賴關系。為此,本文以CFG為基礎圖結構,嘗試在保證其邏輯語義完整性的同時,抽取DDG中的數據依賴關系,從而彌補其在跨節(jié)點依賴關系表達上的缺陷。當前,用于構建代碼圖結構的開源工具主要有Javalang、Joern、Angr以及Progex等。Progex在構建圖結構時,所構建CFG與DDG中節(jié)點所承載的代碼語句高度一致,可為依賴關系的挖掘和增強提供堅實基礎。

    鑒于此,本研究以Progex為基礎,構建增強控制流圖(en-hancedcontrol flowgraph,ECFG),其方法如下:

    首先,使用Progex對源代碼進行解析,分別生成源代碼的CFG和DDG,以CFG作為基本的圖結構。其次,提取DDG中的數據依賴關系邊,將其嵌入基礎圖結構中,生成ECFG。這既充分發(fā)揮了CFG能夠完整描述代碼塊內語句順序、分支和循環(huán)結構關系的優(yōu)勢,又解決了基于CFG的代碼結構表示缺失跨節(jié)點關聯,導致上下文信息不全的問題。以圖2所示克隆代碼塊為例,本文構建的ECFG結構如圖3所示。

    圖2是表示復制功能的克隆代碼塊,圖3為該克隆代碼塊對應的增強控制流圖結構。在圖3中,每個節(jié)點代表一個語句,節(jié)點間通過兩種類型邊相連,實線為控制流邊,虛線為數據依賴邊。詳細的增強控制流圖構建過程如算法1所示。

    算法1構造增強控制流圖算法

    輸入:控制流圖 GC=(Vc,Rc) ;數據依賴圖 。

    輸出:增強控制流圖

    def function_MultiDiGraph( {GC,GD) :GH=nx MultiDiGraphfor vi , vj in GC . edges:GH .add_node (vi) (204號TH.addd-node(vj) (204 for vi , vj m GD . edges:if not GH

    return GH

    構造增強控制流圖算法的說明如下:

    a)算法輸入為控制流圖 Gc 的節(jié)點集合 Vc 、邊集合 Rc 和數據依賴圖 Gp 的節(jié)點集合 VD 、邊集合 RD ;輸出為增強CFG GH 。

    b)定義一個函數MultiDiGraph( Gc , Gp )用于構造增強控制流圖,該函數包含兩個輸入參數:控制流圖 GC 和數據依賴圖 GD

    c)首先,通過NetworkX庫創(chuàng)建一個空的多重有向圖 GH 以存儲增強控制流圖。其次,遍歷控制流圖 GC 中所有的邊(vi,vj) ,獲取起始節(jié)點 vi 和終止節(jié)點 vj ,作為 GH 的節(jié)點,并獲取節(jié)點間的邊,將邊的屬性 r 設置為0,以標記控制流邊。最后,遍歷數據依賴圖 Gp 的所有邊 (vi,vj) ,檢查 G?H 中是否已存在從 vi 到 vj 的邊,如不存在,添加節(jié)點間的邊,將邊的屬性設置為1,以標記數據依賴邊,反之,則不添加。

    在獲取數據依賴邊的過程中,本文發(fā)現在DDG結構中,兩個語句間可能存在多個變量的數據依賴關系,而本文增強控制流圖,旨在發(fā)揮控制流圖中邏輯語義信息優(yōu)勢的基礎上,彌補其跨節(jié)點關聯信息缺失的問題,且本文認為過于詳細的數據流關系反而會增強圖數據處理的難度,影響克隆檢測效果。因此,在構建ECFG時,僅采用單條數據依賴關系邊,以表達原CFG結構中缺失的跨節(jié)點關聯。

    圖2描述復制功能的克隆代碼片段示例
    圖3克隆代碼片段對應的增強控制流圖結構 Fig.3Enhanced control flow graph structure corresponding to clonedcode fragments

    2.1.2圖結構表示規(guī)范化

    ECFG的圖結構表示需將其規(guī)范化處理為標準的圖數據,才可作為深度學習模型的輸入數據。圖結構表示規(guī)范化包括圖節(jié)點特征向量化和圖特征提取兩個方面。

    針對圖節(jié)點特征,本文采用 InferCode[27] 生成 ECFG的節(jié)點代碼行的初始特征向量。相較于傳統的嵌入方法而言,InferCode是一種利用深度學習技術表示代碼的結構和語義的方法[28]。InferCode借鑒 Doc2Vec 的思想,將代碼塊轉換為對應的AST文檔,將AST子樹視為文檔中的詞匯單元,通過對子樹預測,構建針對代碼片段的編碼模型。對于給定代碼塊集合,InferCode生成AST集合 {T1,T2,…,Tn},Ti 為代碼生成的樹集, Tij 為樹 Ti 的子樹。InferCode訓練目標為計算最大化子樹在上下文中出現的概率 P 。 Pi 為最大化子樹 Tij 在 Ti 上下文中出現的概率和,其計算方法如式(1)所示。

    針對圖結構特征,本文構建鄰接矩陣 ADG 表示ECFG的圖結構特征。將每條邊視為一個包含起始節(jié)點、鄰接節(jié)點以及邊類型的三元組。其中,起始節(jié)點和鄰接節(jié)點從ECFG中提取,邊類型分為控制依賴邊和數據依賴邊兩類。

    經過上述處理后得到節(jié)點特征與圖特征,構成標準的圖結構數據。

    2.2基于孿生網絡架構的CGSMN模型

    當前的克隆檢測模型大多基于圖神經網絡技術對代碼進行語義學習及辨析[29],然而,此類方法仍面臨挑戰(zhàn)。一方面語義捕獲能力不足。單一的圖神經網絡方法對復雜語義特征的學習有限,生成的圖語義向量與真實語義存在偏差,難以準確表征代碼的語義。另一方面語義相似度辨析困難。在處理圖與圖之間的語義相似度時,依賴于額外的度量方法,空間向量分布的優(yōu)化能力不足,難以準確辨析細微的語義相似性。而孿生網絡架構核心在于細粒度的捕捉和跨結構關聯的建模,這一特點為克隆檢測模型提供了進一步強化語義特征表達和相似性辨析的新思路。為此,本文從優(yōu)化語義學習及相似性辨析視角出發(fā),提出一種基于孿生網絡架構CGSMN模型,與優(yōu)化代碼表示視角進行有效互補。

    2.2.1節(jié)點特征表征層

    節(jié)點特征表征層聚焦節(jié)點內部關鍵語義特征,優(yōu)化局部語義信息。首先,對每個節(jié)點內部的token應用共享的注意力機制,計算每個token的注意力系數。其次,根據注意力系數進行節(jié)點嵌入。具體地,節(jié)點由多個token組成,每個token的特征表示為 νi ,其中 i 是token的索引。節(jié)點的特征矩陣 Vn∈ R,其中Ta是節(jié)點中token的數量,F為每個token的特征維度。首先,對每個token應用共享的注意力機制,計算注意力系數 attt

    attt=f(?Wνt)=aT(?Wνt

    其中:函數 f(?) 是一個共享注意力函數,以token的特征向量νt 作為輸入,并通過權重矩陣 W∈RF×F′ ,將輸人特征 νt 映射到向量空間。其中 F 表示輸入特征向量維度, F 表示映射后的特征向量維度。輸出注意力權重 attt ,經過softmax函數進行歸一化處理,以衡量每個token的相對重要性:

    其中:歸一化的注意力系數 at 用于計算每個token的相對重要性。在節(jié)點嵌人過程中,本文采用多頭注意力機制,以捕獲代碼結構的多層次語義特征。具體而言,將節(jié)點的token轉換為節(jié)點的嵌入向量 Hi ·

    Hi=concat(h1,h2,…,hk)W0

    其中: W0∈RF×K′ 用于將多頭注意力機制的輸出,映射到所需嵌入維度的權重矩陣; k 表示注意力的數量。每個注意力頭 hi 學習不同的注意力權重:

    其中: Wi 是每個注意力頭的權重矩陣; ati 是第 χi 個注意力頭對token χt 計算得到的注意力系數: σ?σt 是節(jié)點中的 token 特征向量。

    2.2.2圖嵌入表征層

    經過節(jié)點注意力層得到節(jié)點特征集合 H 本文基于改進的關系圖注意力網絡,捕捉節(jié)點間的上下文信息,優(yōu)化全局語義信息。

    首先,本文對節(jié)點向量和邊向量采用共享注意力機制,得到注意力系數 attuiv

    attuiv=f(Whu,Wri,Whv

    其中: W∈RF×F′ 為特征轉換權重矩陣 ?;f(???) 為共享注意力函數,以節(jié)點向量 huAv 和邊向量 ri 作為輸人,計算注意力系數attuiv 。然后,對轉換后的節(jié)點特征和邊特征進行拼接,并通過softmax函數進行歸一化,得到歸一化的值 auiv

    其中: Nu 表示節(jié)點 u 的鄰接節(jié)點集合; Ruz 是節(jié)點與其相連節(jié)點z 之間的特定依賴關系類型。不同的依賴關系類型,表達了節(jié)點間不同的結構關系。根據依賴關系類型的不同,計算節(jié)點 u 對其鄰接節(jié)點 v 的注意力權重。在計算完注意力權重后,本文結合多頭注意力機制,將鄰接節(jié)點的特征與對應的依賴關系特征相融合,并與注意力權重相乘,從而更新節(jié)點特征向量 hu ·

    其中: σ1 為非線性激活函數ELU(exponentiallinearunit),以提高模型表達能力; 表示對 K 個注意力頭的輸出進行拼接操作。

    為進一步提升模型的語義表征能力,以及訓練和推理過程中的效率。本文構建在圖嵌入表征層引入邊池化層。邊池化層通過節(jié)點與邊特征的結合來計算每條邊的重要性得分 suv

    其中 σ:hu 和 hv 分別為節(jié)點 u 和 v 特征向量; rw 是邊 (u,v) 的特征向量; 表示特征拼接。根據計算出的邊的重要性得分,從而得到新的節(jié)點向量 huv

    huv=suv(hu+hv

    最后,采用全局注意力機制,整合多層節(jié)點特征,生成全局圖嵌入 Ci

    其中: hi 是節(jié)點 χi 的特征向量; aiglobal 是通過全局注意力機制得到的加權系數,反映了每個節(jié)點在全局圖嵌人中的重要性。將ai 和 hi 進行加權組合,最終生成代碼圖的全局語義嵌人表示。

    2.2.3 語義匹配層

    經過圖嵌入表征后的代碼語義信息,表現出節(jié)點間強依賴性和上下文關聯。盡管Transformer等模型在捕捉全局依賴關系上表現優(yōu)異,但其位置編碼機制僅提供位置信息,缺乏BiLSTM所具備的雙向上下文捕捉能力[30]。而代碼獨特的語義結構,往往依賴于前后文的緊密關聯,準確表達語義。為此,本文構建一對雙向長短期記憶神經網絡單元,提取嵌入向量中的雙向語特征。如圖2所示,BiLSTM接收全局圖嵌入向量對 Ci 和 Cj

    分別從前向和后向兩個方向對圖嵌入向量對進行處理,獲取雙向上下文信息后,將前向和后向的隱藏狀態(tài)拼接:

    其中: hBiLSTM 是最終表示代碼片段之間的雙向語義關系的隱藏向量。

    2.2.4計算相似度

    獲得雙向語義關系的隱藏向量 hBiLSTM 后,將其傳遞至多層感知機(MLP)進行線性變換。將高維語義表示映射到二分類的結果空間,輸出克隆代碼的預測結果

    最后,由于克隆檢測任務中,正負樣本之間存在顯著不平衡,本文改進焦點損失,設計損失函數 Lc ,使得模型更加關注到難以分類的復雜語義克隆代碼,其定義為

    其中: N 表示訓練批次大??; BCE- loss表示二元交叉熵損失函數; yi 分別代表第 χi 個樣本的真實標簽和預測值; γ 為調節(jié)因子,用于減少易分類樣本對總損失的貢獻; α 為平衡因子,用于權重調整。此外,引入指數項,引導模型有針對性地學習難以檢測的克隆代碼的深層語義。進一步,通過比較預測概率和真實標簽之間的差異,不斷優(yōu)化語義空間中的位置,提升模型的分類性能。

    3 實驗研究

    3.1 實驗數據集

    本文數據集采用在真實代碼創(chuàng)作環(huán)境中收集的兩個數據集Google Code Jam(GCJ)[31]和 BigCloneBench(BCB)[32]

    GCJ是Google每年舉辦的國際編程大賽所收集的數據集,包含了1669個針對12個不同競賽題目提交的Java文件。在實際競賽中,解決同一競賽題目的多個項目通常具有相似的功能,而解決不同競賽題目的項目則具有不同的功能。因此,本文認為GCJ數據集屬于Type-4類語義克隆數據集,并假設同一競賽問題下的代碼片段對被視為語義克隆對,而不同競賽問題下的代碼片段對則被視為虛假克隆對。

    BCB是一個廣泛使用的大型克隆測試集,包含了從25000個系統中收集到的超過600000個真實克隆對和26000個虛假克隆對。與GCJ相比,BCB根據語句級別的相似度分數將克隆劃分為四種類型。為了更清晰地界定Type-3和Type-4類型,BCB進一步將Type-3類型細分為強、中等、弱這三種具體類型。表1匯總了BCB數據集中不同克隆類型的分布情況。根據表中數據,在BCB數據集中,弱類型三和類型四代碼克隆的比例高達 98.23% ,這意味著BCB數據集主要包含語義代碼克隆,因此非常適合用于評估語義代碼克隆檢測方法。

    表1BCB數據集中各類克隆類型分布情況Tab.1Distribution of different clone types in the BCB /%

    通過對這兩個數據集的分析,GCJ數據集提供了一個基于實際競賽問題的代碼片段對比,而BCB數據集則通過詳細分類提供了一個更細粒度的克隆檢測評估環(huán)境。兩者結合可為語義代碼克隆檢測提供全面的實驗和評價基礎。

    3.2 評價指標

    本文采用三個關鍵性能指標來評估模型在實驗中的表現,分別是精準率(precision)、召回率(recall)以及 F1 指數( F1 score),表達式如下所示。

    其中:precision用于衡量模型正確識別正例的能力,而recall則側重于評估模型能夠涵蓋多少實際正例的能力。由于單獨使用精確率或召回率難以全面反映模型的實際性能,所以引入了F1 值,能夠更全面地評估模型在代碼克隆檢測任務中的表現。

    3.3 實驗設置

    本文實驗配置為Ubunru20.04系統、 $\mathrm { X e o n } ^ { \textcircled { \otimes } } ~ 8 2 5 5 \mathrm { C } ~ @$ 2.50GHz 處理器、RTX3080、10GB顯卡,使用PyTorch(版本1.12.0)框架,通過 Lc 損失函數和Adam自適應梯度方法對模型參數進行優(yōu)化,以 8:1:1 的比例劃分訓練集、驗證集以及測試集。實驗具體參數設置如表2所示。

    表2參數設置Tab.2Experimental setup

    為保證每個節(jié)點嵌入都能捕獲足夠的上下文關聯依賴關系,節(jié)點表征層注意力頭數設置為4。圖嵌入特征層的注意力頭數設置為16,以盡量符合實際圖結構中的節(jié)點數量。γ設置為2,以增強模型對難分類樣本的學習能力。

    3.4對比模型

    本文使用以下廣泛應用的基準模型作為對比來評估所提出方法的效果。

    DECKARD[20]是早期克隆檢測工具的經典代表,通過歐氏距離對AST的子樹進行聚類來檢測代碼克隆。

    CDLH[8]通過LSTM(long short-term memory)來表征代碼片段,將代碼片段映射到高維向量空間,通過哈希技術實現代碼的匹配。

    DeepSim[18]從CFG中手動提取具有語義特征的語義矩陣,進而利用前饋神經網絡模型學習矩陣的向量表示,強調了代碼的功能相似性。

    SCDetector[19]融合token和CFG信息,并通過孿生GRU 網絡模型進行語義克隆檢測。

    ASTNN[13]對語句的AST子樹進行編碼,隨后將所有編碼過的語句樹輸入RNN中,獲得克隆代碼的向量表示。

    FA-AST[14]通過添加控制流邊構造流增強型AST,并使用圖神經網絡進行代碼克隆檢測。

    DEHAST[15]通過在不同層次添加相應的依賴增強邊,構建含有語義信息的異構圖后,使用圖匹配網絡進行克隆檢測。

    TBCCD[33]融合結構信息和詞法信息,利用樹的卷積網絡來檢測語義克隆。

    EA-HOLMES[17]聯合學習圖表示和圖匹配函數來計算圖相似性以實現語義克隆檢測。

    3.5 對比實驗

    各基準模型的實驗結果均來自對應論文給出的最優(yōu)實驗結果,最佳結果加粗顯示。

    1)GCJ數據集上的結果

    表3顯示了ECFG-CGSMN方法與多種基準方法在preci-sion、recall和 F1 值方面的對比結果。

    表3數據集GCJ上的表現

    Tab.3Performance on the dataset GC]

    DECKARD和RtvNN表現較為普通,原因在于這兩種方法未充分利用代碼的語義信息,而GCJ數據集主要包含語義克隆,因此,此類方法在該數據集上難以取得優(yōu)秀的檢測效果。

    DeepSim和SCDetector相較于前述方法有所進步,但其綜合性能與先進方法相比仍有差距。DeepSim通過提取CFG的語義信息形成語義矩陣,但使用人工定義的語義矩陣,其語義表達仍顯不足。SCDetector雖利用了CFG結構信息,但僅對頻繁出現的tokens賦予較高權重,忽略了出現頻次統計不能決定其在語義表達中的重要程度,導致語義學習不足。

    ASTNN、FA-AST和DEHAST表現較好。這三種方法都在原始樹結構的基礎上添加了額外信息,其中DEHAST在不同層次添加依賴增強邊,本質仍是構建圖結構。因此,節(jié)點的粗糙處理和缺乏邏輯邊導致其上下文信息表達缺失等,都不利于獲取代碼隱含的語義信息。

    相比之下,ECFG-CGSMN在precision和 F1 值上優(yōu)于所有基準方法,分別達到了 99.0% 和 98.5% 。ECFG-CGSMN通過設計數據流邊增強CFG,彌補了圖結構代碼表示上的不足,同時構建了孿生架構網絡模型,分層學習節(jié)點特征和圖特征,提高了代碼的復雜語義學習能力,不僅在precision指標上取得了較好效果, F1 值相較于FA-AST提高了1.5百分點,相較于ASTNN和DEHAST提高了3.5百分點,證明了其在代碼語義挖掘和學習能力方面的優(yōu)勢。

    2)BCB數據集上的結果

    表4展示了ECFG-CGSMN方法與多種基準方法在BCB數據集上的對比結果。從實驗結果可以看出,ECFG-CGSMN在BCB數據集上的precision為 98.0% ,達到了與當前此數據集上最好表現的DHAST同等的表現,而ECFG-CGSMN的 F1 值得分達到 97.5% ,取得了最好的 F1 得分,比當前表現較好的DEHAST和FA-AST分別提高了0.5和2.5百分點。

    表4數據集BCB上的表現Tab.4Performance on the dataset BCB

    3)模型參數量及性能對比

    為進一步驗證ECFG-CGSMN的性能,本文還與ASTNN、TBCCD、EA-HOLMS三個基線模型和ECFG-CGSMN的變體模型CFG-GGSMN進行了性能比較。

    表5和圖4展示了ECFG-CGSMN方法與上述四種方法的參數量及評估指標對比結果。為確保實驗結果的可比性,本文保持與文獻[17]相似的硬件配置和對GCJ數據集的處理方式。

    表5模型參數量及性能結果Tab.5Model parameters and performance results

    結果表明,ASTNN作為一種輕量級模型,模型參數量僅為0.42M,但由于模型容量過小,難以捕捉代碼中的復雜特征,導致性能表現有限,尤其是在召回率和 F1 值上均相對較低。而ECFG-CGSMN通過適當增加模型參數量,有效提升了性能。對于TBCCD,其基于抽象語法樹(AST)的結構分析方法雖然能夠捕捉代碼的結構信息,但缺乏對代碼語義的深人理解,限制了其檢測能力。從EA-HOLMES與本文方法的對比中可以看出,盡管兩者的參數量相近,但本文方法在準確率、召回率和F1 值上均領先6百分點以上。這表明,在相似的參數量下,本文方法能夠更充分地挖掘代碼中的語法與語義特征,展現出更優(yōu)的性能表現。此外,CFG-CGSMN作為一種僅利用控制流圖表征代碼的變體模型,忽略了跨語句的依賴關系,使得其對代碼邏輯和語義的理解較為片面,整體性能相較于完整模型明顯下降。因此,ECFG-CGSMN方法通過優(yōu)化代碼表征方式和模型結構設計,在適度的參數量基礎上實現了較好的性能提升。

    圖4模型參數量及性能對比

    3.6 消融實驗

    為研究ECFG-CGSMN方法各模塊的影響,本文進行了消融實驗。此部分包含ECFG-CGSMN方法的一些變體,fullmodel是完整模型,表6、7和圖5、6分別展示了在BCB數據集和GCJ數據集上的消融實驗結果。

    表6在BCB上的消融實驗結果Tab.6Ablation experiment results on the BCB
    圖5在BCB上消融實驗結果對比Fig.5Comparison of ablation experiment results on the BCB
    表7在GCJ上的消融實驗結果Tab.7Results of experimental ablation studies on the GCJ /%

    PDG-CGSMN與CFG-CGSMN均采用CGSMN模型進行圖語義學習和克隆檢測,區(qū)別在于代碼表示階段使用的圖結構不同,分別采用了PDG和CFG替代了ECFG,以此對比體現ECFG在結構上的優(yōu)越性。如圖5和6所示,PDG比CFG的表示結構性能稍好,但差異不大。本文分析可能存在兩個原因:一是就其結構而言,相較于CFG,PDG含有了更多的變量名和大量的數據流信息,增加了模型處理的復雜性,導致其性能增幅不大;二是就CGSMN模型而言,模型在圖特征表征層中,更關注于節(jié)點與其關聯信息的語義學習,而PDG中有大量的數據依賴關系,因此,具有略優(yōu)于CFG的表現。但這兩種結構與ECFG-CSGMN仍存在差距。本文認為這得益于ECFG圖結構注重表達上下文信息交互,具有豐富的邏輯關系等,且CGSMN模型對圖數據進行節(jié)點語句的關鍵信息抓取,從而能夠捕獲復雜語義特征,獲得更優(yōu)的向量空間表示。

    圖6在GCJ上的消融實驗結果對比Fig.6Comparison of ablation experiment results ontheGCJ

    ECFG-GMN直接將ECFG結構輸入到圖匹配網絡(GMN)中進行語義向量的學習,再進行相似度檢測。相較于本文提出的方法,在BCB和GCJ數據集上各項指標均低于ECFG-CGSMN。因此,GMN在處理復雜的圖數據時存在復雜度較高、長期依賴捕捉困難的問題,不適用于針對單個代碼語義向量的生成工作。同時表明CGSMN模型引人孿生網絡架構和注意力機制等,具有一定的圖數據處理并捕捉和學習圖中長程依賴關系的能力,能夠較好地應對代碼克隆檢測任務。

    R-GAT(GCN)模型用圖卷積網絡(GCN)替換了完整模型中的圖嵌入表征層。與完整模型相比,其在precision和 F1 分數上有顯著下降,這充分表明模型中的圖特征表征層結合節(jié)點與其鄰居的語義關聯,從局部和整體兩個層面生成圖特征向量,能夠有效捕獲代碼深層語義,也充分體現了表達結構與語義的關聯是充分理解代碼語義內涵的關鍵。

    BiLSTM(LSTM)則是將CGSMN模型中語義匹配層的BiLSTM替換為LSTM。在兩個數據集中,結果都顯示克隆檢測性能大幅下降,如圖5和6所示。相比之下,LSTM與BiLSTM的關鍵區(qū)別在于,LSTM僅從單一方向處理信息,在捕捉代碼語義信息時,存在對上下圖結構中上下文關聯信息的損失,導致模型對于語義的理解能力不足。因此,ECFG-CGSMN強化圖結構對于上下文關聯的表達,以及優(yōu)化模型對語義學習的能力,以提升更細粒度的語義感知能力,在捕捉代碼信息和比較語義相似度上具有重要作用。

    3.7 實例實驗

    為進一步驗證ECFG-CGSMN方法的有效性及其針對復雜語義克隆相似性評估的優(yōu)越性,本文從BCB和GCJ數據集中分別選擇一對真實克隆代碼對,比較不同方法下的語義相似度預測得分。圖7和8展示了本文分別從BCB和GCJ數據集選取的真實克隆代碼對。示例1和2來自BCB數據集,均實現文件復制功能。

    示例1使用帶參數的寫入流并通過try-catch處理異常,示例2則直接從指定的URL讀取并寫入文件,異常通過向上拋出處理。盡管它們功能相同,但實現方式和代碼結構差異顯著。示例3和4來自GCJ數據集中的競賽題目蘑菇問題,兩段代碼功能相同,均計算蘑菇數量的動態(tài)和固定速率減少總量,然而在實現細節(jié)和結構上明顯不同。因此,示例的兩對真實克隆代碼,均屬于語義相似但結構迥異的克隆代碼。本文采用不同方法對示例兩對克隆代碼語義相似進行評估。在BCB中對真實克隆對的語義相似性進行評估,DECKARD方法對示例1和2的語義相似度得分為 3.0×10-8 ,CDLH方法的得分為 6.0× 10-6 ,EA-HOLMS方法的得分為0.60,而本文方法ECFG-CGSMN的語義相似度預測得分為 0.90 。在GCJ中對真實克隆對的語義相似性進行評估,DECKARD方法對示例3和4的語義相似度得分為 5.0×10-8 ,EA-HOLMS方法的得分為0.55,而ECFG-CGSMN方法的語義相似度預測得分為0.92。評估結果對比如圖9所示。

    語義相似度得分為0\~1,數值越大,則表示兩個代碼語義越相似,如圖9所示,數值越靠近圓心,語義相似度得分越接近1。為更直觀觀察本文方法的優(yōu)越性,將0.6\~1.0設置為有效預測區(qū),而ECFG-CGSMN方法取得了比對比方法更高的語義相似性預測得分。以上案例表明,本文從優(yōu)化表征和語義學習及辨析兩個視角,提出的基于增強控制流圖和孿生網絡架構的代碼克隆檢測方法,能夠有效捕獲深層語義信息,且在語義相似度辨析上具有一定優(yōu)勢。

    圖9語義相似性評估對比Fig.9Comparison of semantic similarity assessmenl

    4結束語

    本文提出一種基于增強CFG與孿生網絡架構的代碼克隆檢測方法。首先,為強化上下文信息,在控制流圖中嵌人跨依賴關聯信息,構造增強結構表征的ECFG結構;其次,為增強模型對代碼語義學習及辨析能力,設計局部-全局-語義優(yōu)化的語義學習思路,構建基于孿生網絡架構的CSGMN模型;分別構建節(jié)點特征表征層、圖特征表征層和語義匹配層,使模型更為準確地捕捉圖數據中的語義信息,生成融合局部與全局結構信息的圖語義向量,并行計算特征向量間的空間相似度,進行代碼克隆檢測;最后,在GCJ與BCB兩個數據集上進行驗證。結果表明,本文方法與ASTNN、FA-AST和DHAST等方法相比,在precision和 F1 值上均有提升,且通過模型參數對比實驗及實例實驗,多角度證明了ECFG-CGSMN方法的有效性及優(yōu)越性。

    由于ECFG-CGSMN是基于圖表征學習的代碼克隆檢測方法,生成的ECFG雖含有豐富語義,但結構較為復雜,在處理大規(guī)??寺z測任務時可能會導致更高的計算成本,所以,如何在保證高準確度的同時降低檢測成本,并將本文方法應用于實際開發(fā)過程中,是未來進一步研究的方向。

    參考文獻:

    [1]中國信息通信研究院.開源生態(tài)白皮書(2020年)[EB/OL]. (2020-1o-16).http://www.caict.ac.cn/english/research/whitepapers/202112/P020211224526805503114.pdf.(China Academy of Information and Communications Technology.Open source ecosystem whitepaper(2020)[EB/OL].(2020-10-16).http://www.caict. ac.cn/english/research/whitepapers/202112/P02021122452680550 3114.pdf.)

    [2]SYNOPSYS.2024年開源安全和風險分析報告[EB/OL].(2024- 03-11). https://www. synopsys. com/content/dam/synopsys/china/software-integrity/reports/rep-ossra-2024-ch. pdf.(SYNOPSYS. 2024 open source security and risk analysis report[EB/OL].(2024- 03-11).https://www. synopsys.com/content/dam/synopsys/china/ software-integrity/reports/rep-ossra-2O24-ch.pdf.)

    [3]Bellon S,KoschkeR,Antoniol G,et al.Comparison and evaluation ofclone detection tools[J].IEEE Trans on Software Enginee ring,2007,33(9):577-591.

    [4]Roy C K,Cordy JR. NICAD:accurate detection of near-miss intentionalclonesusing flexible prety-printing and code normalization [C]//Proc ofthe 16th IEEE International Conference on Program Comprehension.Piscataway,NJ:IEEEPress,2008:172-181.

    [5]Kamiya T,Kusumoto S, Inoue K.CCFinder:a multilinguistic tokenbased code clone detection system for large scale source code[J]. IEEETranson Software Engineering,2002,28(7):654-670.

    [6]Wang Pengcheng, Svajlenko J, Wu Yanzhao,et al. CCAligner: a token based large-gap clone detector[C]//Proc of the 40th IEEE/ ACM International Conference on Software Engineering.Piscataway, NJ: IEEE Press,2018:1066-1077.

    [7]Gabel M, Jiang Lingxiao,Su Zhendong. Scalable detection of semantic clones [C]//Proc of the 30th ACM/IEEEInternational Conference on Software Engineering.Piscataway,NJ: IEEE Press,2008: 321-330.

    [8]Yang Yanming,Hu Xing,Gao Zhipeng,et al.Federated learning for software engineering:a case study of code clone detection and defect prediction[J]. IEEE Trans on Software Engineering,2024,50 (2):296-321.

    [9]Wei Huihui,Li Ming,Wei Huihui,et al.Supervised deep features forsoftware functional clone detection by exploiting lexical and syntactical information in source code[C]//Proc of the 26th International Joint Conference on Artificial Intelligence.New York:ACM Press, 2017:3034-3040.

    [10]Tai Kaisheng,Socher R,Manning C D. Improved semantic representations from tre-structured long short-term memory networks[C]// Proc of the 53rd Annual Meeting of the Assciation for Computational Linguisticsand the 7th International Joint Conference on Natural Language Processing. 2015: 1556-1566.

    [11] Zhao Zhehao,Yang Bo,Li Ge,et al.Precise learning of source code contextual semantics via hierarchical dependence structure and graph attention networks[J]. Journal of Systems and Software,2022, 184: 111108.

    [12]熊曙初,李軒,吳佳妮,等.基于有監(jiān)督對比學習的文本情感語 義優(yōu)化方法研究[J].數據分析與知識發(fā)現,2024,8(6):69- 81.(Xiong Shuchu,Li Xuan,Wu Jiani,et al. Research on text sentiment semantic optimization method based on supervised contrastive learning [J]. Data Analysis and Knowledge Discovery, 2024,8(6): 69-81.)

    [13] Zhang Jian,Wang Xu,Zhang Hongyu,et al.A novel neural source code representation based on abstract syntax tree [C]//Proc of the 41st IEEE/ACM International Conference on Software Engineering. Piscataway,NJ: IEEE Press,2019: 783-794.

    [14]WangWenhan,LiGe,Ma Bo,etal.Detectingcodeclones with graph neural network and flow-augmented abstract syntax tree [C]// Proc of the27th IEEE International Conference on Software Analysis,EvolutionandRenginering.Piscataway,NJ:IEEEPress, 2020:261-271.

    [15]萬澤軒,謝春麗,呂泉潤,等,基于依賴增強的分層抽象語法樹 的代碼克隆檢測[J].計算機應用,2024,44(4):1259-1268. (Wan Zexuan,Xie Chunli,Lyu Quanrun,et al. Code clone detection based on dependency enhanced hierarchical abstract syntax tre [J].Journal of Computer Applications,2024,44(4):1259- 1268.)

    [16]Hu Yutao,Zou Deqing,Peng Junru,et al.TreeCen:building tree graph for scalable semantic code clone detection[C]//Proc of the 37th IEEE/ACM International Conference on Automated Software Engineering.New York:ACM Press,2023:1-12.

    [17]MehrotraN,Agarwal N,GuptaP,et al.Modeling functional similarity in source code with graph-based Siamese networks[J]. IEEE Trans on Software Engineering,2022,48(10):3771-3789.

    [18] Zou Yue,Ban Bihuan, Xue Yinxing,et al. CCGraph: a PDG-based code clone detector with approximate graph matching[C]//Proc of the 35th IEEE/ACM Intermational Conference on Automated Software Engineering.New York:ACM Press,2020:931-942.

    [19] Zhao Gang,Huang J, Zhao Gang,et al. DeepSim: deep learning code functional similarity[C]//Proc of the 26th ACM Joint Meeting on European Software Enginering Conference and Symposium on the Foundations of Software Engineering.New York: ACM Press,2O18:141-151.

    [20]Wu Yueming,Zou Deqing,Dou Shihan,et al. SCDetector: software functional clone detection based on semantic tokens analysis [C]// Proc of the 35th IEEE/ACM Intermational Conference on Automated Software Engineering.New York:ACM Press,202O:821-833.

    [21] Jiang Lingxiao,Misherghi G,Su Zhendong,et al.DECKARD:scalable and accurate tree-based detection of code clones[C]//Proc of the 29th International Conference on Software Enginering.Piscataway,NJ:IEEE Press,2007:96-105.

    [22]Li Liuqing,Feng He, Zhuang Wenjie,et al. CCLearner: a deep learning-based clone detection approach[C]//Proc of IEEE International Conference on Software Maintenance and Evolution.Piscataway,NJ:IEEE Press,2017:249-260.

    [23]Fang Chunrong,Liu Zixi,Shi Yangyang,et al.Functional code clone detection with syntax and semantics fusion learning[C]//Proc of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis. New York:ACM Press,202O: 516-527.

    [24]Zhang Xiangping,Liu Jianxun,Shi Min.A paralel deeplearningbased code clone detection model[J]. Journal of Parallel and Distributed Computing,2023,181:104747.

    [25]呂泉潤,謝春麗,萬澤軒,等.基于對比學習的跨語言代碼克隆 檢測方法[J].計算機應用研究,2024,41(7):2147-2152. (Lyu Quanrun, Xie Chunli,Wan Zexuan,et al. Contrastive learning based cross-language code clone detection [J]. Application Research of Computers,2024,41(7):2147-2152.)

    [26]張祥平,劉建勛.基于深度學習的代碼表征及其應用綜述[J]. 計算機科學與探索,2022,16(9):2011-2029.(Zhang Xiangping,Liu Jianxun. Overview of deep learning-based code representation and its applications[J].Journal of Frontiers of Computer Science and Technology,2022,16(9):2011-2029.)

    [27]Bui N D Q,Yu Yijun,Jiang Lingxiao. InferCode:self-supervised learning of code representationsby predicting subtrees[C]//Proc of the 43rd IEEE/ACM International Conference on Software Engineering.Piscataway,NJ: IEEE Press,2021:1186-1197.

    [28]肖鵬,張旭升,楊豐玉,等.基于深層圖卷積網絡與注意力的漏 洞檢測方法[J].計算機工程與應用,2024,60(3):292-298. (Xiao Peng, Zhang Xusheng,Yang Fengyu,et al. Vulnerability detection based on deep graph convolutional network and attntion mechanism[J].Computer Engineering and Applications,2024,60 (3): 292-298.)

    [29]陳龍,張振宇,李曉明,等.AGCFN:基于圖神經網絡多層網絡 社團檢測模型[J].計算機應用研究,2024,41(10):2926- 2931.(Chen Long, Zhang Zhenyu,Li Xiaoming,et al.AGCFN: multiplex network community detection model based on graph neural network [J].Application Research of Computers,2024,41 (10):2926-2931.)

    [30]Quradaa FH,Shahzad S,Almoqbily RS.A systematic literature review on the applications of recurrent neural networks in code clone research[J].PLoS One,2024,19(2):e0296858.

    [31] Google code jam [EB/OL].[2022-05-26]. https://code.google. com/codejam/past-contests.

    [32]SvajlenkoJ,IslamJF,KeivanlooI,et al.Towardsabig data curated benchmark of inter-project code clones [C]//Proc of IEEE International Conference on Software Maintenance and Evolution. Piscataway,NJ:IEEE Press,2014:476-480.

    [33]Yu Hao,Lam W,Chen Long,et al.Neural detection of semantic code clones via tre-based convolution[C]//Proc of the 27th IEEE/ ACM International Conference on Program Comprehension.Piscataway,NJ: IEEE Press,2019:70-80.

    猜你喜歡
    代碼克隆語義
    金頂側耳磷酸葡萄糖變位酶(PGM)基因克隆與生物信息學分析
    小麥TaTPI基因的克隆及其對非生物脅迫的響應
    以AI為核心推動WEB程序設計課程教學方法改革探索
    科教導刊(2025年19期)2025-08-17 00:00:00
    以數字素養(yǎng)與技能培養(yǎng)為導向的編程驗證教學模式探索
    我科學家實現高效體細胞克隆
    科學導報(2025年51期)2025-08-09 00:00:00
    人工智能輔助下的高中信息技術單元學歷案創(chuàng)新實踐
    信息科技×AI:校慶啟動裝置,我們來安排
    一例體細胞克隆技術在種豬繁育中應用的案例
    語言與語義
    “上”與“下”語義的不對稱性及其認知闡釋
    現代語文(2016年21期)2016-05-25 13:13:44
    99久久久亚洲精品蜜臀av| 三级国产精品欧美在线观看| 一本一本综合久久| 哪里可以看免费的av片| 国产精品福利在线免费观看| 日本成人三级电影网站| 精品久久久久久成人av| 99九九线精品视频在线观看视频| av天堂在线播放| av专区在线播放| 日本在线视频免费播放| 五月玫瑰六月丁香| 国产亚洲5aaaaa淫片| 熟妇人妻久久中文字幕3abv| 色尼玛亚洲综合影院| 桃色一区二区三区在线观看| 激情 狠狠 欧美| 哪个播放器可以免费观看大片| 欧美激情国产日韩精品一区| 内地一区二区视频在线| 男人的好看免费观看在线视频| 国产视频首页在线观看| 深夜a级毛片| 伦理电影大哥的女人| 亚洲精品乱码久久久v下载方式| 有码 亚洲区| 国产av在哪里看| 伦理电影大哥的女人| 国产亚洲av片在线观看秒播厂 | 亚洲国产精品成人综合色| 亚洲自拍偷在线| 搞女人的毛片| 99热这里只有是精品50| 亚洲第一电影网av| 国产单亲对白刺激| 狂野欧美白嫩少妇大欣赏| 老司机影院成人| 美女xxoo啪啪120秒动态图| 久久婷婷人人爽人人干人人爱| 国产精品综合久久久久久久免费| 国产精品99久久久久久久久| av黄色大香蕉| 亚洲成a人片在线一区二区| 嫩草影院新地址| 亚洲最大成人av| 美女xxoo啪啪120秒动态图| 国产成人影院久久av| 久久99热6这里只有精品| 国产成人精品一,二区 | 欧美精品国产亚洲| 女人十人毛片免费观看3o分钟| 高清毛片免费观看视频网站| 精品无人区乱码1区二区| 国产久久久一区二区三区| 51国产日韩欧美| 亚洲国产色片| 99久国产av精品国产电影| 国产精品久久久久久av不卡| 一夜夜www| 国产三级在线视频| 欧美高清成人免费视频www| 老司机福利观看| 久久午夜亚洲精品久久| 青青草视频在线视频观看| 热99在线观看视频| 欧美+亚洲+日韩+国产| 国产黄片美女视频| 白带黄色成豆腐渣| 亚洲国产色片| 两个人视频免费观看高清| 91久久精品国产一区二区三区| 国产国拍精品亚洲av在线观看| 乱人视频在线观看| 97在线视频观看| 日韩三级伦理在线观看| 亚洲欧美成人综合另类久久久 | 亚洲精品久久国产高清桃花| 精品久久久久久久久亚洲| 久久热精品热| 在线观看av片永久免费下载| h日本视频在线播放| 免费av观看视频| 真实男女啪啪啪动态图| 欧美成人免费av一区二区三区| 久久久国产成人免费| 能在线免费看毛片的网站| 最近中文字幕高清免费大全6| 麻豆国产97在线/欧美| 亚洲av.av天堂| 免费av毛片视频| 91麻豆精品激情在线观看国产| 国产精品福利在线免费观看| 天堂中文最新版在线下载 | 少妇人妻精品综合一区二区 | 午夜激情欧美在线| 在线观看午夜福利视频| 狂野欧美激情性xxxx在线观看| 一个人免费在线观看电影| а√天堂www在线а√下载| 99久久无色码亚洲精品果冻| 久久午夜福利片| 国产成人精品婷婷| 日日撸夜夜添| 91aial.com中文字幕在线观看| 天天躁夜夜躁狠狠久久av| 日本成人三级电影网站| 成年版毛片免费区| 久久久久免费精品人妻一区二区| 午夜精品一区二区三区免费看| 欧美成人免费av一区二区三区| 亚洲成人久久爱视频| 一边摸一边抽搐一进一小说| 亚洲av一区综合| 国国产精品蜜臀av免费| 国产成年人精品一区二区| 黑人高潮一二区| 少妇丰满av| 国产一区二区在线观看日韩| 黄片wwwwww| 国内揄拍国产精品人妻在线| 永久网站在线| 日韩精品青青久久久久久| 1000部很黄的大片| 国产精品国产高清国产av| 国产白丝娇喘喷水9色精品| 国语自产精品视频在线第100页| 亚洲国产日韩欧美精品在线观看| 麻豆一二三区av精品| 国产精品野战在线观看| 最近最新中文字幕大全电影3| 久久久久久久亚洲中文字幕| 亚洲欧美日韩高清在线视频| 最近最新中文字幕大全电影3| 99热这里只有是精品50| 国产大屁股一区二区在线视频| 国产综合懂色| 丝袜喷水一区| 国产精品伦人一区二区| 亚洲av电影不卡..在线观看| 成年av动漫网址| 午夜激情福利司机影院| 在线免费观看不下载黄p国产| 狂野欧美白嫩少妇大欣赏| 日韩一区二区三区影片| 麻豆成人午夜福利视频| 亚洲av一区综合| av卡一久久| av卡一久久| 亚洲精品国产av成人精品| 精品人妻熟女av久视频| 亚洲高清免费不卡视频| 日韩成人av中文字幕在线观看| 色吧在线观看| 99久久中文字幕三级久久日本| 国产精品国产三级国产av玫瑰| 高清日韩中文字幕在线| 国产极品精品免费视频能看的| 婷婷亚洲欧美| av福利片在线观看| 免费av不卡在线播放| 老熟妇乱子伦视频在线观看| 国产精品国产高清国产av| 联通29元200g的流量卡| 亚洲在线自拍视频| 高清在线视频一区二区三区 | 亚洲,欧美,日韩| 亚洲人成网站在线观看播放| 国产69精品久久久久777片| 亚洲欧美精品综合久久99| 欧洲精品卡2卡3卡4卡5卡区| 欧美变态另类bdsm刘玥| 久久久久久久久久久免费av| 三级男女做爰猛烈吃奶摸视频| 国内精品美女久久久久久| 91狼人影院| av专区在线播放| 大又大粗又爽又黄少妇毛片口| 丝袜喷水一区| 观看免费一级毛片| 精品久久久久久久久久久久久| 亚洲国产精品久久男人天堂| 99久久人妻综合| 亚洲av成人精品一区久久| 久久人妻av系列| 国产色爽女视频免费观看| 精品人妻一区二区三区麻豆| 小蜜桃在线观看免费完整版高清| 色综合色国产| 22中文网久久字幕| 精品久久久久久久久亚洲| 亚洲国产欧美在线一区| 两个人视频免费观看高清| 麻豆国产av国片精品| 能在线免费观看的黄片| 色视频www国产| 亚洲不卡免费看| 亚洲av成人精品一区久久| 欧美潮喷喷水| 天堂av国产一区二区熟女人妻| 亚洲在线自拍视频| 国产精品野战在线观看| h日本视频在线播放| 久久久久久九九精品二区国产| 中文资源天堂在线| 亚洲av中文字字幕乱码综合| 成人欧美大片| 中国美白少妇内射xxxbb| 欧美人与善性xxx| 国产精品.久久久| 在线观看免费视频日本深夜| 国产精品久久久久久久电影| 日本黄色视频三级网站网址| 精品人妻偷拍中文字幕| 免费观看在线日韩| 永久网站在线| 日韩精品青青久久久久久| 国产极品天堂在线| 亚洲国产精品sss在线观看| 久久国产乱子免费精品| 亚洲欧洲国产日韩| 爱豆传媒免费全集在线观看| 国产国拍精品亚洲av在线观看| 男人舔女人下体高潮全视频| av天堂在线播放| 日韩欧美精品v在线| 色噜噜av男人的天堂激情| 亚洲美女视频黄频| 亚洲18禁久久av| 一个人观看的视频www高清免费观看| 久久九九热精品免费| 国产视频内射| 人妻久久中文字幕网| 中文字幕人妻熟人妻熟丝袜美| 成人综合一区亚洲| 国产精品1区2区在线观看.| 一进一出抽搐gif免费好疼| 午夜福利在线观看免费完整高清在 | 一级毛片久久久久久久久女| 好男人视频免费观看在线| 少妇人妻精品综合一区二区 | 亚洲精品久久久久久婷婷小说 | 最近2019中文字幕mv第一页| 中文字幕精品亚洲无线码一区| 日韩一区二区三区影片| 国产91av在线免费观看| 99热这里只有是精品50| 精品久久久久久久久久久久久| 99精品在免费线老司机午夜| av专区在线播放| 亚洲经典国产精华液单| 最好的美女福利视频网| 亚洲国产欧美在线一区| av卡一久久| 嘟嘟电影网在线观看| 久久久久久久久中文| 免费观看在线日韩| 此物有八面人人有两片| 婷婷六月久久综合丁香| 亚洲最大成人av| 成人午夜高清在线视频| 美女 人体艺术 gogo| 国产久久久一区二区三区| 成人永久免费在线观看视频| 全区人妻精品视频| 国产 一区精品| 在线免费观看的www视频| 美女 人体艺术 gogo| 亚洲欧美精品综合久久99| 国内精品久久久久精免费| 国产毛片a区久久久久| 五月伊人婷婷丁香| 欧美性猛交╳xxx乱大交人| 亚洲国产色片| 久久久a久久爽久久v久久| 国语自产精品视频在线第100页| 神马国产精品三级电影在线观看| www.色视频.com| 九色成人免费人妻av| 淫秽高清视频在线观看| 天美传媒精品一区二区| 高清毛片免费观看视频网站| 一级黄片播放器| 国产精品永久免费网站| 国产成人91sexporn| 18禁在线播放成人免费| 国产精品久久久久久av不卡| 国产精品美女特级片免费视频播放器| 成人亚洲精品av一区二区| 成人一区二区视频在线观看| 日韩,欧美,国产一区二区三区 | 特大巨黑吊av在线直播| 国产探花在线观看一区二区| 全区人妻精品视频| 久久这里只有精品中国| 欧美成人a在线观看| 99久国产av精品| 夫妻性生交免费视频一级片| 麻豆国产97在线/欧美| 秋霞在线观看毛片| 亚洲丝袜综合中文字幕| 国产女主播在线喷水免费视频网站 | 国产精品人妻久久久久久| 看十八女毛片水多多多| 欧美+亚洲+日韩+国产| 亚洲国产欧洲综合997久久,| 成人无遮挡网站| 内地一区二区视频在线| 99精品在免费线老司机午夜| 少妇熟女aⅴ在线视频| 男人舔奶头视频| 国产一区二区三区在线臀色熟女| 男人和女人高潮做爰伦理| 日本一本二区三区精品| 国产老妇女一区| 91麻豆精品激情在线观看国产| 日日撸夜夜添| 免费搜索国产男女视频| 韩国av在线不卡| 观看免费一级毛片| 天天一区二区日本电影三级| 三级国产精品欧美在线观看| 欧美+亚洲+日韩+国产| 国产蜜桃级精品一区二区三区| 一级毛片久久久久久久久女| 人妻少妇偷人精品九色| 色尼玛亚洲综合影院| 国产成人一区二区在线| 男的添女的下面高潮视频| 99热网站在线观看| 一个人免费在线观看电影| 人妻少妇偷人精品九色| 观看免费一级毛片| 国语自产精品视频在线第100页| 男女啪啪激烈高潮av片| av免费在线看不卡| 91久久精品国产一区二区成人| a级毛色黄片| 国产精品野战在线观看| 成人特级黄色片久久久久久久| 3wmmmm亚洲av在线观看| 欧美性猛交╳xxx乱大交人| 成人性生交大片免费视频hd| 日韩欧美国产在线观看| 国产成人freesex在线| 国产精品福利在线免费观看| 欧美精品国产亚洲| 99久久精品国产国产毛片| 国产又黄又爽又无遮挡在线| 两个人的视频大全免费| 又粗又硬又长又爽又黄的视频 | 久久精品国产99精品国产亚洲性色| 熟妇人妻久久中文字幕3abv| 一区福利在线观看| 搡老妇女老女人老熟妇| 国产中年淑女户外野战色| 国产精品野战在线观看| 91午夜精品亚洲一区二区三区| 少妇的逼好多水| 简卡轻食公司| 99热这里只有是精品50| 1000部很黄的大片| 深夜精品福利| 在线免费十八禁| 亚洲丝袜综合中文字幕| 国产亚洲5aaaaa淫片| av在线播放精品| 99热这里只有精品一区| 黄色日韩在线| 3wmmmm亚洲av在线观看| 有码 亚洲区| 日韩 亚洲 欧美在线| 国产成人精品一,二区 | 久久久久久久久久黄片| 午夜老司机福利剧场| 人人妻人人看人人澡| 一区福利在线观看| 简卡轻食公司| 少妇熟女aⅴ在线视频| 黄片无遮挡物在线观看| 狠狠狠狠99中文字幕| 女人被狂操c到高潮| 成人永久免费在线观看视频| 国产精品1区2区在线观看.| 国产一区二区在线观看日韩| 亚洲七黄色美女视频| 一本精品99久久精品77| 两性午夜刺激爽爽歪歪视频在线观看| 日韩制服骚丝袜av| 中国美女看黄片| 十八禁国产超污无遮挡网站| 人妻夜夜爽99麻豆av| 舔av片在线| 国产一级毛片在线| 黄色日韩在线| 久久人人爽人人爽人人片va| 中文字幕精品亚洲无线码一区| 黄色一级大片看看| 亚洲成人精品中文字幕电影| 又粗又硬又长又爽又黄的视频 | 老师上课跳d突然被开到最大视频| 亚洲欧美精品自产自拍| 国产一区二区在线av高清观看| 国产美女午夜福利| 波多野结衣巨乳人妻| 日本五十路高清| 欧美日韩乱码在线| 人妻久久中文字幕网| 成人亚洲欧美一区二区av| 五月玫瑰六月丁香| 最近的中文字幕免费完整| 亚洲性久久影院| 国产 一区精品| 一区二区三区免费毛片| 在线国产一区二区在线| 少妇被粗大猛烈的视频| 男女视频在线观看网站免费| 国产精品永久免费网站| 全区人妻精品视频| 国产一区亚洲一区在线观看| 中文字幕精品亚洲无线码一区| 内射极品少妇av片p| 黄片无遮挡物在线观看| 亚洲精品影视一区二区三区av| 一本精品99久久精品77| 精品人妻视频免费看| 两个人视频免费观看高清| 亚洲国产精品久久男人天堂| 亚洲成人久久性| 日韩强制内射视频| 九九爱精品视频在线观看| 亚洲成人久久性| 亚洲av熟女| 日韩视频在线欧美| 亚洲自拍偷在线| 六月丁香七月| 日韩欧美在线乱码| 免费av毛片视频| 亚洲成人久久爱视频| 久久精品国产亚洲av涩爱 | 三级毛片av免费| 九草在线视频观看| av又黄又爽大尺度在线免费看 | 床上黄色一级片| 成人鲁丝片一二三区免费| 欧美区成人在线视频| 国国产精品蜜臀av免费| 亚洲精品456在线播放app| 美女脱内裤让男人舔精品视频 | 国产麻豆成人av免费视频| 免费看光身美女| 亚洲av成人av| 亚洲国产精品久久男人天堂| 日韩欧美三级三区| 亚洲欧洲国产日韩| 老司机影院成人| 91狼人影院| 国产蜜桃级精品一区二区三区| 国产淫片久久久久久久久| 欧美激情国产日韩精品一区| 热99在线观看视频| 精品一区二区三区视频在线| 欧美+日韩+精品| 久久中文看片网| 久久精品国产亚洲网站| 一个人看的www免费观看视频| 国产成人精品婷婷| 欧美3d第一页| 三级经典国产精品| 亚洲内射少妇av| 晚上一个人看的免费电影| 九九在线视频观看精品| 色哟哟·www| 校园春色视频在线观看| 亚洲一区二区三区色噜噜| 国产精品女同一区二区软件| 女的被弄到高潮叫床怎么办| 亚洲欧美精品自产自拍| 在线观看美女被高潮喷水网站| 午夜久久久久精精品| 大型黄色视频在线免费观看| 一本久久精品| 亚洲性久久影院| 久久精品综合一区二区三区| av黄色大香蕉| 免费看a级黄色片| 亚洲最大成人手机在线| 国语自产精品视频在线第100页| 欧美一区二区国产精品久久精品| 国产av一区在线观看免费| 亚洲精品亚洲一区二区| 插阴视频在线观看视频| 色综合色国产| 我要搜黄色片| 久久久久久久久中文| 国产一区二区激情短视频| 亚洲图色成人| 深夜a级毛片| 能在线免费观看的黄片| 精品不卡国产一区二区三区| 深爱激情五月婷婷| 成人一区二区视频在线观看| 国产精品久久久久久精品电影| 国产日本99.免费观看| 国产成人精品久久久久久| 亚洲av一区综合| 91精品一卡2卡3卡4卡| 成人特级av手机在线观看| 久久久久久久久中文| 国产一区二区亚洲精品在线观看| 亚洲在线观看片| 久久精品久久久久久噜噜老黄 | 一区二区三区四区激情视频 | 久久韩国三级中文字幕| av专区在线播放| 色综合亚洲欧美另类图片| 亚洲一区高清亚洲精品| 99久久久亚洲精品蜜臀av| 嫩草影院入口| 精品少妇黑人巨大在线播放 | 色吧在线观看| 特大巨黑吊av在线直播| 亚洲av中文av极速乱| 男人和女人高潮做爰伦理| 看十八女毛片水多多多| 免费大片18禁| 欧美变态另类bdsm刘玥| 亚洲18禁久久av| 亚洲国产精品国产精品| 国产真实伦视频高清在线观看| 国产成人aa在线观看| 亚洲国产高清在线一区二区三| 欧美激情在线99| 麻豆成人av视频| 欧美一区二区国产精品久久精品| 丝袜喷水一区| 热99在线观看视频| 亚洲欧美精品综合久久99| 国产av在哪里看| 亚洲成人久久爱视频| 国产午夜福利久久久久久| 亚洲五月天丁香| 婷婷亚洲欧美| 午夜亚洲福利在线播放| 久久久欧美国产精品| 哪里可以看免费的av片| 最近最新中文字幕大全电影3| 日韩精品有码人妻一区| 男人狂女人下面高潮的视频| 国产极品天堂在线| 51国产日韩欧美| 一进一出抽搐gif免费好疼| 毛片女人毛片| 插逼视频在线观看| 一区二区三区免费毛片| 国产黄片美女视频| 亚洲欧美日韩卡通动漫| 欧美+日韩+精品| 国产精品精品国产色婷婷| 欧美高清成人免费视频www| 一边亲一边摸免费视频| 亚洲av成人精品一区久久| 国产私拍福利视频在线观看| 别揉我奶头 嗯啊视频| 26uuu在线亚洲综合色| 国产一级毛片在线| 91aial.com中文字幕在线观看| 夜夜夜夜夜久久久久| 久久久午夜欧美精品| 日韩 亚洲 欧美在线| 我的老师免费观看完整版| 久久久国产成人免费| 插逼视频在线观看| 亚洲精品国产av成人精品| 永久网站在线| 在现免费观看毛片| 亚洲中文字幕一区二区三区有码在线看| 在线观看午夜福利视频| 国产亚洲精品久久久久久毛片| 嫩草影院入口| 免费av不卡在线播放| 欧美一区二区亚洲| 亚洲精华国产精华液的使用体验 | 免费在线观看成人毛片| 国产精品久久久久久亚洲av鲁大| 国产人妻一区二区三区在| 国内精品美女久久久久久| 日韩 亚洲 欧美在线| 精品人妻视频免费看| 日本三级黄在线观看| av免费在线看不卡| 成人一区二区视频在线观看| 偷拍熟女少妇极品色| 国内精品一区二区在线观看| 国产成人a∨麻豆精品| 国产白丝娇喘喷水9色精品| 亚洲欧美日韩卡通动漫| 老熟妇乱子伦视频在线观看| 夜夜爽天天搞| 在线a可以看的网站| 性插视频无遮挡在线免费观看| 亚洲色图av天堂| 国产精品久久久久久av不卡| 日本成人三级电影网站| 午夜老司机福利剧场| 一个人看的www免费观看视频| 精品久久久久久久末码| 国产精品1区2区在线观看.| 国产精品久久视频播放| 全区人妻精品视频| 禁无遮挡网站| 精品熟女少妇av免费看| 欧美成人一区二区免费高清观看| av.在线天堂| 乱系列少妇在线播放| 亚洲av中文av极速乱|