基于源碼變更分析的程序中間代碼生成技術研究.pdf_第1頁
已閱讀1頁,還剩82頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、軟件行業(yè)的快速發(fā)展使軟件的適應性要求提高,需求變化愈發(fā)頻繁,源碼變更次數(shù)也呈現(xiàn)上升趨勢。然而,源碼變更帶來的影響是難以準確預測的,這些變更可能會導致軟件出現(xiàn)新的缺陷(bugs)或者安全漏洞等。因此如何高效地處理源碼變更帶來的影響是提升軟件可靠性和安全性的重要問題之一。
  源碼變更分析的研究已流行一段時間,但是目前主要的研究工作集中在源碼級別,比如ChangeDistiller工具通過樹差分算法研究變更前后源碼(JAVA編程語言)

2、得出軟件不同版本之間的源碼變更信息。基于源碼級別的差異分析結(jié)果,工程人員通常依賴經(jīng)驗去判斷變更部分代碼對軟件的影響;然而,即使擁有豐富經(jīng)驗的工程人員也會出現(xiàn)失誤,從而造成不可估量的后果,可能會使得一次版本變更變成災難。然而,快速準確的程序分析、驗證方法可以幫助工程人員分析軟件以及程序變更部分代碼對軟件帶來的影響。但是這些程序分析方法基于中間代碼,比如模型檢測、實施符號執(zhí)行等。但是這些基于中間代碼的程序分析、驗證方法無法使用源碼分析結(jié)果,

3、兩者之間缺乏交互機制,存在鴻溝。因此,本文研究源碼變更與中間代碼之間關系,以給上述程序分析方法提供便利。本文把源碼到中間代碼的翻譯過程作為切入點,研究如何基于源碼分析結(jié)果獲取中間代碼變更信息。
  基于上述問題分析,本文利用變更標記跟蹤源碼翻譯過程以確定源碼在中間代碼中的對應的指令塊,提出一種基于源碼變更分析的程序中間代碼生成技術:IRChange。IRChange技術基于Clang/LLVM框架,通過源碼變更差異分析的研究,獲取

4、源碼變更后的中間代碼。IRChange生成的中間代碼可以進行差異分析,并且可以通過提取變更部分中間代碼為增量程序分析、驗證提供便利。在獲取變更后中間代碼過程中,IRChange使用變更標記來跟蹤源碼,以定位其在中間代碼中的變更內(nèi)容。IRChange添加變更標記的方法可以有效避免修改編譯器本身源碼至中間代碼的翻譯行為,降低與編譯器耦合程度,為進一步的功能擴展提供方便。
  本文課題的主要研究內(nèi)容:首先,IRChange技術為源碼添加

5、變更標記(源碼行號),在中間代碼翻譯過程中傳遞變更標記,生成帶有標記的中間代碼;其次,當源碼發(fā)生變更后,設計并實現(xiàn)語句級別的差異分析工具Diff以進行源碼差異分析,得到源碼變更后的編輯腳本;然后,根據(jù)中間代碼生成語法規(guī)則,快速生成變更部分源碼的指令集;最后設計并實現(xiàn)的MergeIR算法將變更前中間代碼與變更部分的指令集合成,以生成源碼變更后的中間代碼。
  本文從開源社區(qū)Github中的Clang和LLVM項目中選取足量的變更源碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論