天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁 > 科技論文 > 自動化論文 >

基于深度學(xué)習(xí)模型的軟件功能型克隆檢測

發(fā)布時(shí)間:2020-12-13 10:10
  軟件克隆檢測致力于找出兩段功能相似的代碼段,其對軟件系統(tǒng)的維護(hù)和發(fā)展起著非常重要的作用。目前該領(lǐng)域存在很多研究試圖有效檢測軟件克隆,他們多是基于代碼段的文本或結(jié)構(gòu)信息,手工提取代碼段包含這些信息的特征。這種做法使其無法有效檢測出軟件功能型克隆,即只有功能相似而在句法和語法層面可能有很大差別的代碼段。本文針對目前方法無法有效檢測軟件功能型克隆的現(xiàn)狀,提出基于深度學(xué)習(xí)模型和監(jiān)督信息的軟件功能型克隆檢測方法。本文首先將軟件克隆檢測問題形式化為一個(gè)監(jiān)督學(xué)習(xí)問題,提出一個(gè)端到端的深度學(xué)習(xí)框架CDLH。CDLH利用訓(xùn)練集中代碼段的監(jiān)督信息指導(dǎo)深度學(xué)習(xí)模型,并根據(jù)編程語言的特點(diǎn)設(shè)計(jì)深度模型,使深度模型學(xué)習(xí)出的深度監(jiān)督特征不僅包含代碼段的句法和語法信息,同時(shí)包含了其功能信息。在真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,所提方法能夠有效地檢測出功能型克隆。使用監(jiān)督信息指導(dǎo)特征學(xué)習(xí)能學(xué)得包含代碼段功能特點(diǎn)的特征,但在真實(shí)場景中進(jìn)行軟件克隆的標(biāo)記時(shí),領(lǐng)域?qū)<乙话阒粯?biāo)記他們恰好發(fā)現(xiàn)的克隆對,而有大部分的未被發(fā)現(xiàn)的克隆對和非克隆對未被標(biāo)記。因此本文提出在弱標(biāo)記場景下的軟件克隆檢測問題應(yīng)該被形式化為一個(gè)從只有正標(biāo)記數(shù)據(jù)和無標(biāo)記... 

【文章來源】:南京大學(xué)江蘇省 211工程院校 985工程院校 教育部直屬院校

【文章頁數(shù)】:70 頁

【學(xué)位級別】:碩士

【圖文】:

基于深度學(xué)習(xí)模型的軟件功能型克隆檢測


圖2-1:數(shù)據(jù)集BigCloneBench的標(biāo)注過程

架構(gòu)圖,架構(gòu),代碼段,哈希


flll辦轉(zhuǎn)BBM徽麵■涵V?-1??[.…會圈??嘗—)??I?.;:咕希病數(shù)¥3?嶺希由敢3!??。撸簦?■■丨■會:??t?mtm? ̄??i?/Tm\?n撕―!?/舒杣\?丨4奸:提。??!?/?KHi/jfk?\??峰?參教共享?嶺?/?fti/itt*?\?i??I?<V?W的)料勢致共李—\?7?I??'?\LSTM?/?\?LSTM,?!??、、、-.-t.-????f--.y?1??■?■?輸入??|代碼段1?]?段2?I?.??圖3-1:?CDLH的總體架構(gòu)。??使得屬于一個(gè)克隆對的代碼段其哈希碼之間的海明距離應(yīng)盡可能近,非克隆對??的哈希碼之間的海明距離應(yīng)盡可能遠(yuǎn)。這兩部分融合到一個(gè)整體的框架中,端??到端地學(xué)習(xí)將原始代碼段映射到表示其是否克隆對的標(biāo)記上。??具體來說,CDLH會同時(shí)學(xué)習(xí)兩個(gè)函數(shù)映射:表征提取層的映射和哈希函??數(shù)的映射。為了讓克隆對的哈希碼盡可能相似,非克隆對的哈希碼盡可能不相??似,類似[67]定義優(yōu)化函數(shù)如下:??n?n?1?m??^.yl?pi.y?- ̄Y^hk?hk?(^(cy))???0-?)??’?i=l?j=l?k=l??這里我們用簡單的線性函數(shù)作為哈希函數(shù),即M火C,.))?=?signKWCf)+&)。??其中以是偏置項(xiàng),???,!〇,?,/^,…人}。但由于sign函數(shù)不容易優(yōu)??化,因此我們按照一般哈希學(xué)習(xí)〖67,681的做法,在優(yōu)化過程中優(yōu)化/^M(C,_))?=??+?&這一項(xiàng)。注意這里對每一對代碼段我們都乘了?b^|這一項(xiàng)。??這是因?yàn)閿?shù)據(jù)中不是所有的代碼段都有標(biāo)記,對那些沒有標(biāo)記的代碼段如??果也對它們

抽象語法,示例


3.3基于監(jiān)督學(xué)習(xí)的軟件克隆檢測?23??statement??sequence??while?return??condition,^^?V??compare?\?variable??op:?^?\b〇dy?name:?a??/fv?V??variable?constant??name:?b?value:?0?ranch??compare?assign?assign??variable?variable?variable?bin?op?variable?bin?op??name:?a?name:?b?name:?a?op:?-?name:?b?op:—??/v??variable?variable?variable?variable??name:?a?name:?b?name:?b?name:?a??圖3?-2:抽象語法樹示例圖。??象語法樹形成中間代碼作為輸出,以供后端繼續(xù)處理。正因?yàn)槌橄笳Z法樹能做??到不依賴于語言的細(xì)節(jié),其才能作為各種編程語言的代碼輸出。抽象語法樹的??這兩大特點(diǎn)使其成為程序編譯和分析理解過程中重要的組成部分。??我們來看一段基礎(chǔ)代碼對應(yīng)的抽象語法樹實(shí)例,以此了解抽象語法樹如何??表示程序語法結(jié)構(gòu)。如圖3-2即是如下代碼的抽象語法樹:??while?(b?。?0)?{??if?(a?>?b)??a?=?a?-?b;??else??b?=?b?-?a??}??return?a;??


本文編號:2914377

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/zidonghuakongzhilunwen/2914377.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶ed28b***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com