- 軟件大?。?span>6.06M
- 軟件語言:中文
- 軟件類型:國產(chǎn)軟件
- 軟件類別:免費(fèi)軟件 / 電子圖書
- 更新時間:2018-01-03 17:30
- 運(yùn)行環(huán)境:WinAll, WinXP, Win7, Win8, Win10
- 軟件等級:
- 軟件廠商:
- 官方網(wǎng)站:暫無
85.00M/中文/8.0
6.70M/中文/3.3
135.00M/中文/5.0
535.05M/中文/0.6
6.43M/中文/10.0
自己動手寫編譯器pdf是一款可以自學(xué)編程的計算機(jī)電子課本。讀者朋友們可以使用本程序自學(xué)編程知識,提供了基礎(chǔ)的語法分析以及語音編譯等知識內(nèi)容。歡迎需要的用戶來綠色資源網(wǎng)下載使用。
《自己動手寫編譯器、鏈接器》本書講述了一個真實(shí)編譯器的開發(fā)過程,源語言是以C語言為藍(lán)本,進(jìn)行適當(dāng)簡化定義的一門新語言,稱之為SC語言(簡化的C語言),目標(biāo)語言是大家熟悉的Intel x86機(jī)器語言。在本書中,讀者將看到從SC語言定義,到SCC編譯器開發(fā)的完整過程。
本書介紹的SCC編譯器,沒有借助Lex與Yacc這些編譯器自動生成工具,純手工編寫而成,更便于學(xué)習(xí)和理解。為了生成可以直接運(yùn)行EXE文件,本書還實(shí)現(xiàn)了一個鏈接器。讀完本書讀者將知道一門全新的語言如何定義,一個真實(shí)的編譯器、鏈接器如何編寫。本書適合各類程序員、程序開發(fā)愛好者閱讀,也可作為高等院校編譯原理課程的實(shí)踐教材。
第1章引言
1.1HelloWorld編譯過程分析1
1.1.1HelloWorld程序源文件1
1.1.2詞法分析2
1.1.3語法分析3
1.1.4語義分析3
1.1.5鏈接器4
1.2SCC編譯器簡介7
1.2.1SCC編譯器架構(gòu)7
1.2.2SCC編譯器開發(fā)環(huán)境7
1.2.3SCC編譯器運(yùn)行環(huán)境8
第2章文法知識
2.1語言概述10
2.2形式語言11
2.2.1字母表和符號串11
2.2.2文法與語言的形式定義12
2.2.3文法與語言的類型13
2.2.4程序設(shè)計語言描述工具15
2.3詞法分析方法16
2.3.1詞法定義例舉17
2.3.2狀態(tài)轉(zhuǎn)換圖17
2.3.3詞法分析程序流程圖17
2.4語法分析方法18
2.4.1LL分析器18
2.4.2LL(k)文法19
2.4.3LL(1)文法19
2.4.4遞歸子程序法21
2.4.5文法的等價變換24
第3章SC語言定義
3.1SC語言的藍(lán)本選擇26
3.1.1K&R C26
3.1.2C8926
3.1.3C9927
3.2SC語言對C89簡化原則27
3.3SC語言的字符集27
3.3.1基本字符集28
3.3.2擴(kuò)展字符集28
3.4SC語言詞法定義29
3.4.1關(guān)鍵字29
3.4.2標(biāo)識符30
3.4.3整數(shù)常量31
3.4.4字符常量31
3.4.5字符串常量32
3.4.6運(yùn)算符及分隔符32
3.4.7注釋33
3.5SC語言語法定義33
3.5.1外部定義33
3.5.2語句35
3.5.3表達(dá)式39
3.6SC語言與C語言功能對比46
3.6.1關(guān)鍵字46
3.6.2數(shù)據(jù)類型46
3.6.3存儲類型47
3.6.4常量47
3.6.5變量47
3.6.6函數(shù)48
3.6.7語句48
3.6.8表達(dá)式50
第4章SC語言詞法分析
4.1詞法分析任務(wù)的官方說法52
4.2單詞編碼53
4.3詞法分析用到的數(shù)據(jù)結(jié)構(gòu)55
4.3.1動態(tài)字符串56
4.3.2動態(tài)數(shù)組58
4.3.3哈希表61
4.3.4單詞表62
4.4錯誤處理,未雨綢繆67
4.5詞法分析過程72
4.5.1詞法分析主程序72
4.5.2預(yù)處理76
4.5.3解析標(biāo)識符79
4.5.4解析整數(shù)80
4.5.5解析字符串80
4.5.6詞法分析流程圖82
4.6詞法著色84
4.7控制程序85
4.8詞法分析成果展示86
第5章SC語言語法分析
5.1外部定義87
5.1.1翻譯單元87
5.1.2外部聲明88
5.1.3類型區(qū)分符90
5.1.4結(jié)構(gòu)區(qū)分符92
5.1.5函數(shù)調(diào)用約定95
5.1.6結(jié)構(gòu)成員對齊95
5.1.7聲明符96
5.1.8初值符100
5.2語句101
5.2.1復(fù)合語句102
5.2.2表達(dá)式語句103
5.2.3選擇語句104
5.2.4循環(huán)語句104
5.2.5跳轉(zhuǎn)語句105
5.3表達(dá)式107
5.3.1賦值表達(dá)式108
5.3.2相等類表達(dá)式109
5.3.3關(guān)系表達(dá)式109
5.3.4加減類表達(dá)式110
5.3.5乘除類表達(dá)式111
5.3.6一元表達(dá)式112
5.3.7后綴表達(dá)式113
5.3.8初值表達(dá)式114
5.4語法縮進(jìn)116
5.4.1用到的全局變量及枚舉116
5.4.2語法縮進(jìn)程序117
5.5總控程序118
5.6成果展示119
第6章符號表
6.1符號表簡介121
6.1.1收集符號屬性121
6.1.2語義的合法性檢查122
6.2符號表用到的主要數(shù)據(jù)結(jié)構(gòu)123
6.2.1棧結(jié)構(gòu)123
6.2.2符號表結(jié)構(gòu)127
6.2.3數(shù)據(jù)類型結(jié)構(gòu)132
6.2.4存儲類型133
6.3符號表的構(gòu)造過程134
6.3.1外部聲明134
6.3.2類型區(qū)分符137
6.3.3結(jié)構(gòu)區(qū)分符138
6.3.4聲明符144
6.3.5變量初始化149
6.3.6復(fù)合語句150
6.3.7sizeof表達(dá)式150
6.3.8初等表達(dá)式152
6.4控制程序153
6.5成果展示155
第7章生成COFF目標(biāo)文件
7.1COFF文件結(jié)構(gòu)157
7.1.1基本概念157
7.1.2總體結(jié)構(gòu)158
7.1.3COFF文件頭158
7.1.4節(jié)頭表161
7.1.5代碼節(jié)內(nèi)容168
7.1.6數(shù)據(jù)節(jié)與導(dǎo)入節(jié)內(nèi)容168
7.1.7COFF符號表169
7.1.8COFF字符串表173
7.1.9COFF重定位信息173
7.2生成COFF目標(biāo)文件175
7.2.1生成節(jié)表176
7.2.2生成符號表178
7.2.3生成重定位信息182
7.2.4生成目標(biāo)文件183
7.3成果展示185[1]
第8章x86機(jī)器語言
8.1x86機(jī)器語言簡介187
8.2通用指令格式188
8.2.1指令前綴188
8.2.2操作碼190
8.2.3ModR/M字節(jié)190
8.2.4SIB字節(jié)191
8.2.5偏移量與立即數(shù)193
8.3x86寄存器193
8.3.1數(shù)據(jù)寄存器193
8.3.2變址寄存器193
8.3.3指針寄存器194
8.3.4段寄存器194
8.3.5指令指針寄存器194
8.3.6標(biāo)志寄存器195
8.4指令參考196
8.4.1符號說明196
8.4.2數(shù)據(jù)傳送指令198
8.4.3算術(shù)運(yùn)算指令200
8.4.4邏輯運(yùn)算指令203
8.4.5控制轉(zhuǎn)移指令205
8.4.6串操作指令208
8.4.7處理器控制指令208
8.5生成x86機(jī)器語言208
8.5.1操作數(shù)棧209
8.5.2生成通用指令210
8.5.3生成數(shù)據(jù)傳送指令213
8.5.4生成算術(shù)與邏輯運(yùn)算指令217
8.5.5生成控制轉(zhuǎn)移指令221
8.5.6寄存器使用224
8.5.7本章用到的全局變量227
8.6成果展示227
......
請描述您所遇到的錯誤,我們將盡快予以修正,謝謝!
*必填項(xiàng),請輸入內(nèi)容