基于深度學習的程序理解研究進展
發(fā)布時間:2022-10-21 16:26
程序理解通過對程序進行分析、抽象、推理從而獲取程序中相關(guān)信息,在軟件開發(fā)、維護、遷移等過程中起重要作用,因而得到學術(shù)界和工業(yè)界的廣泛關(guān)注.傳統(tǒng)程序理解很大程度上依賴開發(fā)人員的經(jīng)驗,但隨著軟件規(guī)模及其復雜度不斷增大,完全依賴開發(fā)人員的先驗知識提取程序特征既耗時耗力,又很難充分挖掘出程序中隱含特征.深度學習是一種數(shù)據(jù)驅(qū)動的端到端的方法,它根據(jù)已有數(shù)據(jù)構(gòu)建深度神經(jīng)網(wǎng)絡對數(shù)據(jù)中隱含的特征進行挖掘,已經(jīng)在眾多領(lǐng)域中獲得成功應用.將深度學習技術(shù)運用于程序理解中,根據(jù)具體任務以及大量數(shù)據(jù)自動地學習程序數(shù)據(jù)中蘊含的特征,可以充分地挖掘出程序中隱含的知識,提高程序理解的效率.對基于深度學習的程序理解研究工作進行綜述,首先對程序所包含的性質(zhì)進行分析,然后介紹主流的程序理解模型,包括基于序列、結(jié)構(gòu)以及執(zhí)行過程的程序理解模型.隨后展示基于深度學習的程序理解在程序分析中的應用,主要針對代碼補全、代碼注釋生成、代碼檢索等任務.最后,分析并總結(jié)程序理解研究所面臨的挑戰(zhàn).
【文章頁數(shù)】:16 頁
【文章目錄】:
1 程序性質(zhì)及程序理解框架
1.1 程序性質(zhì)
1.1.1 強結(jié)構(gòu)性
1.1.2 自定義標識符
1.1.3 長依賴
1.1.4 可執(zhí)行性
1.2 基于深度學習的程序理解框架
2 程序理解的深度學習模型
2.1 基于序列的程序理解模型
2.1.1 基于字符序列的程序理解模型
2.1.2 基于詞素 (token) 序列的程序理解模型
2.1.3 基于應用程序接口 (API) 序列程序理解模型
2.2 基于結(jié)構(gòu)的程序理解模型
2.2.1 基于抽象語法樹的程序理解模型
2.2.2 基于圖的程序理解模型
2.3 基于執(zhí)行過程的程序理解模型
2.4 模型對比分析
3 相關(guān)應用
3.1 代碼補全
3.2 代碼注釋生成
3.3 代碼風格修正
3.4 代碼搜索
3.5 程序自動生成
4 問題與挑戰(zhàn)
4.1 數(shù)據(jù)集的獲取
4.2 程序的表示
4.3 自定義標識符的處理
4.4 模型的有效性分析
5 總 結(jié)
本文編號:3695991
【文章頁數(shù)】:16 頁
【文章目錄】:
1 程序性質(zhì)及程序理解框架
1.1 程序性質(zhì)
1.1.1 強結(jié)構(gòu)性
1.1.2 自定義標識符
1.1.3 長依賴
1.1.4 可執(zhí)行性
1.2 基于深度學習的程序理解框架
2 程序理解的深度學習模型
2.1 基于序列的程序理解模型
2.1.1 基于字符序列的程序理解模型
2.1.2 基于詞素 (token) 序列的程序理解模型
2.1.3 基于應用程序接口 (API) 序列程序理解模型
2.2 基于結(jié)構(gòu)的程序理解模型
2.2.1 基于抽象語法樹的程序理解模型
2.2.2 基于圖的程序理解模型
2.3 基于執(zhí)行過程的程序理解模型
2.4 模型對比分析
3 相關(guān)應用
3.1 代碼補全
3.2 代碼注釋生成
3.3 代碼風格修正
3.4 代碼搜索
3.5 程序自動生成
4 問題與挑戰(zhàn)
4.1 數(shù)據(jù)集的獲取
4.2 程序的表示
4.3 自定義標識符的處理
4.4 模型的有效性分析
5 總 結(jié)
本文編號:3695991
本文鏈接:http://www.sikaile.net/kejilunwen/sousuoyinqinglunwen/3695991.html
最近更新
教材專著