基于編譯器中間語言的軟件運(yùn)行時(shí)可靠性研究
本文關(guān)鍵詞: 可靠性 抽象語法樹 插樁 軟件錯(cuò)誤隔離 編程接口建模 出處:《清華大學(xué)》2015年博士論文 論文類型:學(xué)位論文
【摘要】:隨著計(jì)算機(jī)軟件應(yīng)用在越來越多的關(guān)鍵崗位,軟件運(yùn)行時(shí)的不可靠行為會造成嚴(yán)重的危害。在軟件運(yùn)行時(shí)對其進(jìn)行分析和監(jiān)控,可以診斷和約束軟件的不可靠行為,消除軟件不可靠性帶來的危害。對軟件編譯時(shí)生成的編譯器中間語言進(jìn)行分析和插樁,可以分析和監(jiān)控軟件運(yùn)行時(shí)的行為。因此在軟件運(yùn)行時(shí)如何通過編譯器中間語言增強(qiáng)軟件的可靠性成為一個(gè)重要的研究問題。本文針對軟件運(yùn)行時(shí)的可靠性進(jìn)行研究,主要研究完全優(yōu)化后的插樁無法準(zhǔn)確定位語句和表達(dá)式的問題、運(yùn)行時(shí)軟件錯(cuò)誤隔離缺乏可移植性問題和第三方軟件庫文檔缺乏解析的問題。本文的主要貢獻(xiàn)如下:(1)抽象語法樹級別的插樁方法PAST。由于編譯時(shí)完全優(yōu)化的軟件調(diào)試信息并不準(zhǔn)確,因此在軟件開發(fā)人員對運(yùn)行時(shí)軟件進(jìn)行分析時(shí),存在著無法準(zhǔn)確定位帶有語義信息的語句和表達(dá)式的問題。PAST利用未優(yōu)化的編譯器中間語言和帶有語義信息的抽象語法樹之間的對應(yīng)關(guān)系,為開發(fā)人員提供帶有語義信息的插樁方式,從而解決了在運(yùn)行時(shí)無法準(zhǔn)確定位語句和表達(dá)式的問題。此外,PAST在運(yùn)行時(shí)不僅提供跨平臺的分析框架,同時(shí)將分析工具在軟件運(yùn)行時(shí)的基本開銷降低至可以忽略,這使得PAST可以直接應(yīng)用在產(chǎn)品級軟件的分析中。(2)基于中間語言的軟件錯(cuò)誤隔離方法WebC。在機(jī)器指令級別監(jiān)控運(yùn)行時(shí)軟件行為的軟件錯(cuò)誤隔離方法,需要為不同的體系結(jié)構(gòu)設(shè)計(jì)不同的運(yùn)行時(shí)行為約束,這導(dǎo)致軟件錯(cuò)誤隔離方法在不同體系結(jié)構(gòu)之間存在缺乏可移植性的問題。WebC利用編譯器中間語言具有操作可移植性的優(yōu)點(diǎn),在編譯器中間語言級別插入軟件運(yùn)行時(shí)的約束,從而解決了軟件錯(cuò)誤隔離缺乏可移植性的問題。此外,WebC不僅可以直接嵌入在瀏覽器中,在運(yùn)行時(shí)WebC安全約束對軟件性能的影響也并不明顯。(3)基于自然語言處理的編程接口文檔解析。使用自然語言編寫的編程接口文檔,無法解析成包含軟件運(yùn)行時(shí)行為約束的、形式化的規(guī)范。本方法通過識別文檔結(jié)構(gòu)、識別自然語言單詞,解決了自然語言編程接口文檔無法解析成軟件運(yùn)行時(shí)規(guī)范的問題。
[Abstract]:With the application of computer software in more and more critical positions, the unreliable behavior of software running will cause serious harm. It can diagnose and constrain the unreliable behavior of software, eliminate the harm caused by software unreliability, and analyze and insert the intermediate language of compiler generated when the software is compiled. It is possible to analyze and monitor the behavior of software runtime. Therefore, how to enhance the reliability of software through compiler intermediate language becomes an important research problem. This paper focuses on the reliability of software runtime. Research. This paper mainly studies the problem that the perfectly optimized inserted pile can not accurately locate the statements and expressions. The lack of portability of runtime software error isolation and the lack of parsing of third-party software library documents. The main contributions of this article are as follows: 1). Abstract syntax tree-level piling method pass. Due to the complete optimization of software debugging information at compile time is not accurate. So when software developers analyze runtime software. There is a problem that statements and expressions with semantic information can not be accurately located. Fast uses the unoptimized compiler intermediate language to match the abstract syntax tree with semantic information. The method of inserting posts with semantic information is provided to the developers, which solves the problem that the statements and expressions can not be accurately located at run time. In addition, PAST not only provides a cross-platform analysis framework at run time. At the same time, the basic overhead of the analysis tool is reduced to negligible when the software is running. This allows PAST to be used directly in the analysis of product-level software. An intermediate language-based software error isolation method WebC. a software error isolation method for monitoring runtime software behavior at the machine instruction level. Different runtime behavior constraints need to be designed for different architectures. This leads to the lack of portability of software error isolation methods between different architectures. WebC makes use of compiler intermediate language to have the advantage of operational portability. The constraint of software runtime is inserted at the intermediate language level of compiler, which solves the problem that software error isolation lacks portability. In addition, WebC can not only be embedded directly in browser. At runtime, the impact of WebC security constraints on software performance is not obvious.) programming interface documents based on natural language processing. Programming interface documents written in natural language. This method can not be parsed into a formal specification that contains the behavior constraints of the software runtime. This method recognizes natural language words by recognizing the structure of the document. It solves the problem that the interface document of natural language programming can not be parsed into software runtime specification.
【學(xué)位授予單位】:清華大學(xué)
【學(xué)位級別】:博士
【學(xué)位授予年份】:2015
【分類號】:TP311.53
【相似文獻(xiàn)】
相關(guān)期刊論文 前10條
1 李筱青,陳暉,陳意云;一種新型類型化中間語言的優(yōu)化實(shí)現(xiàn)技術(shù)[J];計(jì)算機(jī)工程;2005年05期
2 熊文新;宋柔;袁琦;;多語信息交流平臺的中間語言系統(tǒng)及支撐環(huán)境設(shè)計(jì)[J];計(jì)算機(jī)科學(xué);2006年08期
3 張濤;李迅波;;軟PLC的轉(zhuǎn)換中間語言模型的建立與研究[J];微計(jì)算機(jī)信息;2007年35期
4 申利民,唐勇,柯漢水,陳曉謙;基于中間語言的逆編譯方法[J];東北重型機(jī)械學(xué)院學(xué)報(bào);1997年01期
5 CSDN;;微軟中間語言和即時(shí)編譯[J];程序員;2002年04期
6 胡榮;范明鈺;王光衛(wèi);宮亞峰;;C逆編譯系統(tǒng)的中間語言的一種優(yōu)化表示方法[J];計(jì)算機(jī)系統(tǒng)應(yīng)用;2010年09期
7 馬希文;樹計(jì)算機(jī)與樹程序[J];計(jì)算機(jī)學(xué)報(bào);1978年01期
8 黎浩宏;;C#語言委托與事件機(jī)制的探討[J];福建電腦;2009年11期
9 劉洪輝;羅勝榮;黎利紅;;一種實(shí)用的計(jì)算機(jī)圖形自動評判方法[J];電腦知識與技術(shù);2006年23期
10 熊貽青;;針對微軟中間語言的逆向分析[J];計(jì)算機(jī)應(yīng)用;2006年07期
相關(guān)會議論文 前2條
1 熊文新;;提升自然語言向中間語言轉(zhuǎn)換準(zhǔn)確性的增強(qiáng)處理[A];第二屆全國學(xué)生計(jì)算語言學(xué)研討會論文集[C];2004年
2 李延莉;宮皓宇;;淺談.NET[A];“加入WTO和科學(xué)技術(shù)與吉林經(jīng)濟(jì)發(fā)展——機(jī)遇·挑戰(zhàn)·責(zé)任”吉林省第二屆科學(xué)技術(shù)學(xué)術(shù)年會論文集(上)[C];2002年
相關(guān)重要報(bào)紙文章 前3條
1 福建 忠英;手機(jī)翻譯時(shí)代的到來[N];電腦報(bào);2004年
2 南京郵電學(xué)院 李建忠;“Hello,World!”程序[N];計(jì)算機(jī)世界;2002年
3 中國科學(xué)院自動化研究所 徐波;回歸到“通天塔”之前[N];計(jì)算機(jī)世界;2002年
相關(guān)博士學(xué)位論文 前1條
1 尹杰;基于編譯器中間語言的軟件運(yùn)行時(shí)可靠性研究[D];清華大學(xué);2015年
相關(guān)碩士學(xué)位論文 前3條
1 韓冬;基于虛擬寄存器的中間語言[D];西南交通大學(xué);2009年
2 黃海;基于IDA的代碼解析與中間語言翻譯[D];解放軍信息工程大學(xué);2009年
3 包蘇魯?shù)?多語種機(jī)器翻譯平臺關(guān)鍵技術(shù)研究[D];復(fù)旦大學(xué);2008年
,本文編號:1481715
本文鏈接:http://www.sikaile.net/shoufeilunwen/xxkjbs/1481715.html