復(fù)雜結(jié)構(gòu)開源代碼的約束轉(zhuǎn)換及實(shí)現(xiàn)
發(fā)布時間:2023-12-10 08:36
隨著互聯(lián)網(wǎng)的快速發(fā)展以及開源軟件的廣泛普及,通過重用已有的開源軟件或者相關(guān)代碼,可極大地提高軟件開發(fā)效率,降低開發(fā)成本。軟件開發(fā)者花費(fèi)大量的時間在互聯(lián)網(wǎng)上搜索相關(guān)的軟件或者代碼加以重用,故如何提高開源代碼搜索的效率得到了業(yè)界的廣泛關(guān)注。通過能夠體現(xiàn)代碼功能的關(guān)鍵字進(jìn)行代碼搜索是一種常用的開源代碼搜索方法,但該方法主要通過語法上的關(guān)鍵字內(nèi)容匹配來實(shí)現(xiàn)代碼查詢,故存在搜索準(zhǔn)確度不高的問題,需要用戶對搜索結(jié)果進(jìn)行人工篩選,才能得到期望的源代碼。目前,基于輸入輸出匹配的開源代碼搜索方法解決了關(guān)鍵字代碼搜索方法的上述不足,它是一種重要的基于語義匹配的搜索方法。該方法將代碼存儲庫中的代碼編碼為約束,同時也將用戶提供的輸入輸出對轉(zhuǎn)化成約束,通過使用Satisfiability Modulo Theories(SMT,可滿足性模理論)求解器查詢相匹配的約束,以返回用戶需要的源代碼;谳斎胼敵銎ヅ涞脑创a搜索方法雖然彌補(bǔ)了關(guān)鍵字代碼搜索方法的缺陷,但也存在明顯不足。首先,該方法僅僅考慮了順序結(jié)構(gòu)代碼的處理方式,未對復(fù)雜結(jié)構(gòu)進(jìn)行處理。其次,該方法是在代碼匹配階段才將代碼轉(zhuǎn)化為約束,故導(dǎo)致搜索效率較低。本...
【文章頁數(shù)】:65 頁
【學(xué)位級別】:碩士
【文章目錄】:
論文摘要
abstract of thesis
引言
1 緒論
1.1 課題研究背景及意義
1.2 國內(nèi)外研究現(xiàn)狀
1.3 本文的主要研究內(nèi)容
1.4 本文的組織結(jié)構(gòu)
2 相關(guān)技術(shù)介紹
2.1 基于輸入輸出匹配的開源代碼搜索方法
2.1.1 基于輸入輸出的代碼匹配方法
2.1.2 程序代碼的輸入輸出匹配過程
2.1.3 程序代碼約束及約束生成
2.1.4 程序代碼約束的自動生成工具
2.2 程序執(zhí)行流程及程序控制結(jié)構(gòu)
2.2.1 程序執(zhí)行流程
2.2.2 復(fù)雜程序控制結(jié)構(gòu)的分類及描述
2.3 基于符號執(zhí)行的程序分析技術(shù)
2.3.1 程序代碼的結(jié)構(gòu)特征及語法樹
2.3.2 基于符號執(zhí)行的程序語法樹生成
2.4 基于差分方程的循環(huán)次數(shù)求解規(guī)則
2.4.1 循環(huán)次數(shù)分析
2.4.2 差分方程基本概念
2.5 本章小結(jié)
3 分支結(jié)構(gòu)的約束轉(zhuǎn)換
3.1 分支結(jié)構(gòu)的約束轉(zhuǎn)換規(guī)則及語義證明
3.1.1 分支結(jié)構(gòu)的轉(zhuǎn)換規(guī)則的語法定義及描述
3.1.2 轉(zhuǎn)換規(guī)則的語義描述及正確性證明
3.2 分支結(jié)構(gòu)的約束轉(zhuǎn)換規(guī)則實(shí)現(xiàn)算法
3.2.1 雙分支結(jié)構(gòu)轉(zhuǎn)換算法
3.2.2 多分支結(jié)構(gòu)轉(zhuǎn)換算法
3.2.3 嵌套分支結(jié)構(gòu)轉(zhuǎn)換算法
3.3 實(shí)例分析
3.4 本章小結(jié)
4 循環(huán)結(jié)構(gòu)的約束轉(zhuǎn)換
4.1 循環(huán)結(jié)構(gòu)的約束轉(zhuǎn)換規(guī)則及語義證明
4.1.1 轉(zhuǎn)換規(guī)則的語法定義及描述
4.1.2 轉(zhuǎn)換規(guī)則的語義描述及正確性證明
4.2 循環(huán)結(jié)構(gòu)的約束轉(zhuǎn)換規(guī)則實(shí)現(xiàn)算法
4.2.1 迭代次數(shù)計(jì)算
4.2.2 循環(huán)展開定義和描述
4.2.3 循環(huán)展開算法
4.3 實(shí)例分析
4.4 匹配結(jié)果排序標(biāo)準(zhǔn)
4.5 本章小結(jié)
5 轉(zhuǎn)換工具實(shí)現(xiàn)以及討論
5.1 整體設(shè)計(jì)
5.2 模塊功能及實(shí)現(xiàn)
5.2.1 代碼載入模塊
5.2.2 語法正確性分析模塊
5.2.3 代碼轉(zhuǎn)換模塊
5.3 實(shí)驗(yàn)結(jié)果
5.4 搜索效率討論
6 總結(jié)與展望
參考文獻(xiàn)
在學(xué)研究成果
致謝
本文編號:3872157
【文章頁數(shù)】:65 頁
【學(xué)位級別】:碩士
【文章目錄】:
論文摘要
abstract of thesis
引言
1 緒論
1.1 課題研究背景及意義
1.2 國內(nèi)外研究現(xiàn)狀
1.3 本文的主要研究內(nèi)容
1.4 本文的組織結(jié)構(gòu)
2 相關(guān)技術(shù)介紹
2.1 基于輸入輸出匹配的開源代碼搜索方法
2.1.1 基于輸入輸出的代碼匹配方法
2.1.2 程序代碼的輸入輸出匹配過程
2.1.3 程序代碼約束及約束生成
2.1.4 程序代碼約束的自動生成工具
2.2 程序執(zhí)行流程及程序控制結(jié)構(gòu)
2.2.1 程序執(zhí)行流程
2.2.2 復(fù)雜程序控制結(jié)構(gòu)的分類及描述
2.3 基于符號執(zhí)行的程序分析技術(shù)
2.3.1 程序代碼的結(jié)構(gòu)特征及語法樹
2.3.2 基于符號執(zhí)行的程序語法樹生成
2.4 基于差分方程的循環(huán)次數(shù)求解規(guī)則
2.4.1 循環(huán)次數(shù)分析
2.4.2 差分方程基本概念
2.5 本章小結(jié)
3 分支結(jié)構(gòu)的約束轉(zhuǎn)換
3.1 分支結(jié)構(gòu)的約束轉(zhuǎn)換規(guī)則及語義證明
3.1.1 分支結(jié)構(gòu)的轉(zhuǎn)換規(guī)則的語法定義及描述
3.1.2 轉(zhuǎn)換規(guī)則的語義描述及正確性證明
3.2 分支結(jié)構(gòu)的約束轉(zhuǎn)換規(guī)則實(shí)現(xiàn)算法
3.2.1 雙分支結(jié)構(gòu)轉(zhuǎn)換算法
3.2.2 多分支結(jié)構(gòu)轉(zhuǎn)換算法
3.2.3 嵌套分支結(jié)構(gòu)轉(zhuǎn)換算法
3.3 實(shí)例分析
3.4 本章小結(jié)
4 循環(huán)結(jié)構(gòu)的約束轉(zhuǎn)換
4.1 循環(huán)結(jié)構(gòu)的約束轉(zhuǎn)換規(guī)則及語義證明
4.1.1 轉(zhuǎn)換規(guī)則的語法定義及描述
4.1.2 轉(zhuǎn)換規(guī)則的語義描述及正確性證明
4.2 循環(huán)結(jié)構(gòu)的約束轉(zhuǎn)換規(guī)則實(shí)現(xiàn)算法
4.2.1 迭代次數(shù)計(jì)算
4.2.2 循環(huán)展開定義和描述
4.2.3 循環(huán)展開算法
4.3 實(shí)例分析
4.4 匹配結(jié)果排序標(biāo)準(zhǔn)
4.5 本章小結(jié)
5 轉(zhuǎn)換工具實(shí)現(xiàn)以及討論
5.1 整體設(shè)計(jì)
5.2 模塊功能及實(shí)現(xiàn)
5.2.1 代碼載入模塊
5.2.2 語法正確性分析模塊
5.2.3 代碼轉(zhuǎn)換模塊
5.3 實(shí)驗(yàn)結(jié)果
5.4 搜索效率討論
6 總結(jié)與展望
參考文獻(xiàn)
在學(xué)研究成果
致謝
本文編號:3872157
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3872157.html
最近更新
教材專著