基于機(jī)器學(xué)習(xí)的程序語義理解
發(fā)布時(shí)間:2022-12-08 05:04
程序語義理解對程序分析、漏洞檢測和惡意代碼檢測等工作至關(guān)重要,然而程序語義理解是一個繁瑣耗時(shí)的過程,因此需要通過自動化方法來幫助人們完成。機(jī)器學(xué)習(xí)能夠從大量代碼中學(xué)習(xí)相關(guān)信息,成為了一個研究熱點(diǎn)。在設(shè)計(jì)機(jī)器學(xué)習(xí)模型時(shí),如果能夠?qū)㈥P(guān)于源代碼的先驗(yàn)知識融入到數(shù)據(jù)的表示中,模型將能更好地理解程序的語義。和代碼文本相比,控制流自動機(jī)和抽象語法樹能夠更直觀地反映程序語言的結(jié)構(gòu)特性。本文分別以控制流自動機(jī)、抽象語法樹和程序圖作為代碼的表示,并設(shè)計(jì)相關(guān)的機(jī)器學(xué)習(xí)模型,分別學(xué)習(xí)代碼不同方面的信息,得到代碼的多維向量表示。本文的主要工作概括如下:(1)將控制流自動機(jī)作為代碼表示,基于Weisfeiler-Lehman Graph kernel模型和Doc2vec模型設(shè)計(jì)了一種機(jī)器模型來學(xué)習(xí)代碼的控制流信息,經(jīng)過訓(xùn)練模型得到代碼的多維表示向量。為了驗(yàn)證該模型能否有效地學(xué)習(xí)到代碼的控制流信息,基于代碼表示向量構(gòu)建一個代碼分類器,并在源代碼分類任務(wù)上與現(xiàn)有的模型進(jìn)行對比。結(jié)果表明,控制流自動機(jī)包含的代碼信息較少,模型僅能夠?qū)W習(xí)到部分信息,未達(dá)到預(yù)期目標(biāo)。(2)由于抽象語法樹比控制流自動機(jī)包含更多代碼細(xì)節(jié)信息,...
【文章頁數(shù)】:80 頁
【學(xué)位級別】:碩士
【部分圖文】:
CFA表示學(xué)習(xí)曲線
AST表示學(xué)習(xí)曲線
程序圖表示學(xué)習(xí)曲線
本文編號:3713603
【文章頁數(shù)】:80 頁
【學(xué)位級別】:碩士
【部分圖文】:
CFA表示學(xué)習(xí)曲線
AST表示學(xué)習(xí)曲線
程序圖表示學(xué)習(xí)曲線
本文編號:3713603
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3713603.html
最近更新
教材專著