C語(yǔ)言編譯系統(tǒng)的研究與實(shí)現(xiàn)
發(fā)布時(shí)間:2023-03-04 19:44
相比于其他自然科學(xué),計(jì)算機(jī)科學(xué)算是較新的科學(xué)體系,還有很多技術(shù)領(lǐng)域有待學(xué)者進(jìn)一步探索。編譯技術(shù)是系統(tǒng)軟件的設(shè)計(jì)學(xué)科,作為計(jì)算機(jī)技術(shù)發(fā)展的基石,學(xué)習(xí)編譯器設(shè)計(jì)的目的不僅在于其本身的理論和技術(shù),其解決問(wèn)題的思路與方法更值得學(xué)者學(xué)習(xí)借鑒。本文基于C++編程語(yǔ)言采用面向?qū)ο蟮乃枷?系統(tǒng)的實(shí)現(xiàn)了一個(gè)C語(yǔ)言編譯器MiniC,并結(jié)合MiniC的源代碼,從前端和后端兩個(gè)角度出發(fā),詳細(xì)介紹了編譯器各個(gè)模塊數(shù)據(jù)結(jié)構(gòu)和算法框架的設(shè)計(jì)實(shí)現(xiàn)。論文的研究工作主要體現(xiàn)在如下幾個(gè)方面:前端部分實(shí)現(xiàn)包括詞法分析、語(yǔ)法分析及與語(yǔ)義分析。詞法分析部分采用有窮狀態(tài)自動(dòng)機(jī)進(jìn)行單詞識(shí)別,然后采用哈希表結(jié)構(gòu)實(shí)現(xiàn)單詞的插入與查找。采用語(yǔ)法制導(dǎo)翻譯,在語(yǔ)法分析的過(guò)程中直接驅(qū)動(dòng)語(yǔ)義分析,并采用棧式結(jié)構(gòu)組織符號(hào)表,實(shí)現(xiàn)符號(hào)的存儲(chǔ)及作用域管理。后端部分實(shí)現(xiàn)包括匯編與鏈接。匯編過(guò)程采用直接翻譯方式將源語(yǔ)言翻譯為機(jī)器指令,著重闡述了寄存器的分配算法、程序運(yùn)行時(shí)的存儲(chǔ)管理及目標(biāo)文件生成。鏈接過(guò)程對(duì)符號(hào)進(jìn)行分析及重定位,將符號(hào)引用與定義相關(guān)聯(lián),最終生成Windows系統(tǒng)下PE文件格式的可執(zhí)行文件。錯(cuò)誤管理貫穿整個(gè)編譯系統(tǒng),統(tǒng)計(jì)編譯及鏈接過(guò)程中發(fā)生的...
【文章頁(yè)數(shù)】:71 頁(yè)
【學(xué)位級(jí)別】:碩士
【文章目錄】:
摘要
abstract
專用術(shù)語(yǔ)注釋表
第一章 緒論
1.1 C語(yǔ)言簡(jiǎn)介
1.2 論文的研究背景及意義
1.3 國(guó)內(nèi)外研究現(xiàn)狀
1.4 主流C語(yǔ)言編譯器
1.5 論文的主要工作及結(jié)構(gòu)安排
第二章 編譯系統(tǒng)設(shè)計(jì)原理概述
2.1 詞法分析
2.1.1 正則表達(dá)式
2.1.2 有窮狀態(tài)自動(dòng)機(jī)
2.1.3 從正則表達(dá)式到有窮自動(dòng)機(jī)的轉(zhuǎn)換
2.1.4 單詞識(shí)別
2.2 語(yǔ)法分析
2.2.1 上下文無(wú)關(guān)法
2.2.2 FIRST、FOLLOW集合
2.3 語(yǔ)義分析
2.3.1 語(yǔ)法制導(dǎo)翻譯
2.3.2 符號(hào)表
2.4 匯編生成目標(biāo)文件
2.5 鏈接生成可執(zhí)行文件
2.5.1 PE文件格式
2.5.2 可選文件頭
2.6 主流編譯器及相關(guān)工具實(shí)現(xiàn)技術(shù)對(duì)比
2.7 本章小結(jié)
第三章 編譯系統(tǒng)前端設(shè)計(jì)與實(shí)現(xiàn)
3.1 詞法分析
3.1.1 分詞算法框架
3.1.2 單詞編碼規(guī)則
3.1.3 DFA實(shí)現(xiàn)
3.1.4 單詞表數(shù)據(jù)結(jié)構(gòu)
3.1.5 哈希沖突解決方法
3.2 語(yǔ)法分析及語(yǔ)義分析
3.2.1 文法定義
3.2.2 類型信息
3.2.3 符號(hào)表設(shè)計(jì)實(shí)現(xiàn)
3.3 錯(cuò)誤管理
3.4 模塊間關(guān)系及類結(jié)構(gòu)設(shè)計(jì)
3.5 本章小結(jié)
第四章 編譯器后端設(shè)計(jì)與實(shí)現(xiàn)
4.1 目標(biāo)機(jī)器
4.1.1 匯編指令
4.1.2 寄存器分配
4.2 運(yùn)行時(shí)的存儲(chǔ)管理
4.2.1 過(guò)程活動(dòng)記錄
4.2.2 棧式存儲(chǔ)管理
4.3 生成目標(biāo)文件
4.3.1 節(jié)數(shù)據(jù)存儲(chǔ)
4.3.2 Obj文件生成
4.4 生成可執(zhí)行文件
4.4.1 導(dǎo)入庫(kù)文件
4.4.2 外部符號(hào)解析及重定位
4.5 模塊間關(guān)系及類結(jié)構(gòu)設(shè)計(jì)
4.6 本章小結(jié)
第五章 系統(tǒng)分析及測(cè)試
5.1 實(shí)驗(yàn)環(huán)境
5.2 系統(tǒng)分析
5.3 詞法分析器功能測(cè)試
5.4 語(yǔ)法分析器功能測(cè)試
5.4.1 基本運(yùn)算測(cè)試
5.4.2 語(yǔ)句測(cè)試
5.5 目標(biāo)文件生成測(cè)試
5.6 可執(zhí)行文件測(cè)試
5.7 錯(cuò)誤管理測(cè)試
5.8 本章小結(jié)
第六章 總結(jié)與展望
6.1 總結(jié)
6.2 展望
參考文獻(xiàn)
附錄1 攻讀碩士學(xué)位期間申請(qǐng)的專利
致謝
本文編號(hào):3754886
【文章頁(yè)數(shù)】:71 頁(yè)
【學(xué)位級(jí)別】:碩士
【文章目錄】:
摘要
abstract
專用術(shù)語(yǔ)注釋表
第一章 緒論
1.1 C語(yǔ)言簡(jiǎn)介
1.2 論文的研究背景及意義
1.3 國(guó)內(nèi)外研究現(xiàn)狀
1.4 主流C語(yǔ)言編譯器
1.5 論文的主要工作及結(jié)構(gòu)安排
第二章 編譯系統(tǒng)設(shè)計(jì)原理概述
2.1 詞法分析
2.1.1 正則表達(dá)式
2.1.2 有窮狀態(tài)自動(dòng)機(jī)
2.1.3 從正則表達(dá)式到有窮自動(dòng)機(jī)的轉(zhuǎn)換
2.1.4 單詞識(shí)別
2.2 語(yǔ)法分析
2.2.1 上下文無(wú)關(guān)法
2.2.2 FIRST、FOLLOW集合
2.3 語(yǔ)義分析
2.3.1 語(yǔ)法制導(dǎo)翻譯
2.3.2 符號(hào)表
2.4 匯編生成目標(biāo)文件
2.5 鏈接生成可執(zhí)行文件
2.5.1 PE文件格式
2.5.2 可選文件頭
2.6 主流編譯器及相關(guān)工具實(shí)現(xiàn)技術(shù)對(duì)比
2.7 本章小結(jié)
第三章 編譯系統(tǒng)前端設(shè)計(jì)與實(shí)現(xiàn)
3.1 詞法分析
3.1.1 分詞算法框架
3.1.2 單詞編碼規(guī)則
3.1.3 DFA實(shí)現(xiàn)
3.1.4 單詞表數(shù)據(jù)結(jié)構(gòu)
3.1.5 哈希沖突解決方法
3.2 語(yǔ)法分析及語(yǔ)義分析
3.2.1 文法定義
3.2.2 類型信息
3.2.3 符號(hào)表設(shè)計(jì)實(shí)現(xiàn)
3.3 錯(cuò)誤管理
3.4 模塊間關(guān)系及類結(jié)構(gòu)設(shè)計(jì)
3.5 本章小結(jié)
第四章 編譯器后端設(shè)計(jì)與實(shí)現(xiàn)
4.1 目標(biāo)機(jī)器
4.1.1 匯編指令
4.1.2 寄存器分配
4.2 運(yùn)行時(shí)的存儲(chǔ)管理
4.2.1 過(guò)程活動(dòng)記錄
4.2.2 棧式存儲(chǔ)管理
4.3 生成目標(biāo)文件
4.3.1 節(jié)數(shù)據(jù)存儲(chǔ)
4.3.2 Obj文件生成
4.4 生成可執(zhí)行文件
4.4.1 導(dǎo)入庫(kù)文件
4.4.2 外部符號(hào)解析及重定位
4.5 模塊間關(guān)系及類結(jié)構(gòu)設(shè)計(jì)
4.6 本章小結(jié)
第五章 系統(tǒng)分析及測(cè)試
5.1 實(shí)驗(yàn)環(huán)境
5.2 系統(tǒng)分析
5.3 詞法分析器功能測(cè)試
5.4 語(yǔ)法分析器功能測(cè)試
5.4.1 基本運(yùn)算測(cè)試
5.4.2 語(yǔ)句測(cè)試
5.5 目標(biāo)文件生成測(cè)試
5.6 可執(zhí)行文件測(cè)試
5.7 錯(cuò)誤管理測(cè)試
5.8 本章小結(jié)
第六章 總結(jié)與展望
6.1 總結(jié)
6.2 展望
參考文獻(xiàn)
附錄1 攻讀碩士學(xué)位期間申請(qǐng)的專利
致謝
本文編號(hào):3754886
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3754886.html
最近更新
教材專著