- 軟件大小:6.06M
- 軟件語言:中文
- 軟件類型:國產軟件
- 軟件類別:免費軟件 / 電子圖書
- 更新時間:2018-01-03 17:30
- 運行環(huán)境:WinAll, WinXP, Win7, Win8, Win10
- 軟件等級:
- 軟件廠商:
- 官方網站:暫無


85.00M/中文/8.0
6.70M/中文/3.3
135.00M/中文/5.0
535.05M/中文/0.6
6.43M/中文/10.0
自己動手寫編譯器pdf是一款可以自學編程的計算機電子課本。讀者朋友們可以使用本程序自學編程知識,提供了基礎的語法分析以及語音編譯等知識內容。歡迎需要的用戶來綠色資源網下載使用。
《自己動手寫編譯器、鏈接器》本書講述了一個真實編譯器的開發(fā)過程,源語言是以C語言為藍本,進行適當簡化定義的一門新語言,稱之為SC語言(簡化的C語言),目標語言是大家熟悉的Intel x86機器語言。在本書中,讀者將看到從SC語言定義,到SCC編譯器開發(fā)的完整過程。
本書介紹的SCC編譯器,沒有借助Lex與Yacc這些編譯器自動生成工具,純手工編寫而成,更便于學習和理解。為了生成可以直接運行EXE文件,本書還實現了一個鏈接器。讀完本書讀者將知道一門全新的語言如何定義,一個真實的編譯器、鏈接器如何編寫。本書適合各類程序員、程序開發(fā)愛好者閱讀,也可作為高等院校編譯原理課程的實踐教材。
第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編譯器架構7
1.2.2SCC編譯器開發(fā)環(huán)境7
1.2.3SCC編譯器運行環(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程序設計語言描述工具15
2.3詞法分析方法16
2.3.1詞法定義例舉17
2.3.2狀態(tài)轉換圖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語言的藍本選擇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擴展字符集28
3.4SC語言詞法定義29
3.4.1關鍵字29
3.4.2標識符30
3.4.3整數常量31
3.4.4字符常量31
3.4.5字符串常量32
3.4.6運算符及分隔符32
3.4.7注釋33
3.5SC語言語法定義33
3.5.1外部定義33
3.5.2語句35
3.5.3表達式39
3.6SC語言與C語言功能對比46
3.6.1關鍵字46
3.6.2數據類型46
3.6.3存儲類型47
3.6.4常量47
3.6.5變量47
3.6.6函數48
3.6.7語句48
3.6.8表達式50
第4章SC語言詞法分析
4.1詞法分析任務的官方說法52
4.2單詞編碼53
4.3詞法分析用到的數據結構55
4.3.1動態(tài)字符串56
4.3.2動態(tài)數組58
4.3.3哈希表61
4.3.4單詞表62
4.4錯誤處理,未雨綢繆67
4.5詞法分析過程72
4.5.1詞法分析主程序72
4.5.2預處理76
4.5.3解析標識符79
4.5.4解析整數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結構區(qū)分符92
5.1.5函數調用約定95
5.1.6結構成員對齊95
5.1.7聲明符96
5.1.8初值符100
5.2語句101
5.2.1復合語句102
5.2.2表達式語句103
5.2.3選擇語句104
5.2.4循環(huán)語句104
5.2.5跳轉語句105
5.3表達式107
5.3.1賦值表達式108
5.3.2相等類表達式109
5.3.3關系表達式109
5.3.4加減類表達式110
5.3.5乘除類表達式111
5.3.6一元表達式112
5.3.7后綴表達式113
5.3.8初值表達式114
5.4語法縮進116
5.4.1用到的全局變量及枚舉116
5.4.2語法縮進程序117
5.5總控程序118
5.6成果展示119
第6章符號表
6.1符號表簡介121
6.1.1收集符號屬性121
6.1.2語義的合法性檢查122
6.2符號表用到的主要數據結構123
6.2.1棧結構123
6.2.2符號表結構127
6.2.3數據類型結構132
6.2.4存儲類型133
6.3符號表的構造過程134
6.3.1外部聲明134
6.3.2類型區(qū)分符137
6.3.3結構區(qū)分符138
6.3.4聲明符144
6.3.5變量初始化149
6.3.6復合語句150
6.3.7sizeof表達式150
6.3.8初等表達式152
6.4控制程序153
6.5成果展示155
第7章生成COFF目標文件
7.1COFF文件結構157
7.1.1基本概念157
7.1.2總體結構158
7.1.3COFF文件頭158
7.1.4節(jié)頭表161
7.1.5代碼節(jié)內容168
7.1.6數據節(jié)與導入節(jié)內容168
7.1.7COFF符號表169
7.1.8COFF字符串表173
7.1.9COFF重定位信息173
7.2生成COFF目標文件175
7.2.1生成節(jié)表176
7.2.2生成符號表178
7.2.3生成重定位信息182
7.2.4生成目標文件183
7.3成果展示185[1]
第8章x86機器語言
8.1x86機器語言簡介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偏移量與立即數193
8.3x86寄存器193
8.3.1數據寄存器193
8.3.2變址寄存器193
8.3.3指針寄存器194
8.3.4段寄存器194
8.3.5指令指針寄存器194
8.3.6標志寄存器195
8.4指令參考196
8.4.1符號說明196
8.4.2數據傳送指令198
8.4.3算術運算指令200
8.4.4邏輯運算指令203
8.4.5控制轉移指令205
8.4.6串操作指令208
8.4.7處理器控制指令208
8.5生成x86機器語言208
8.5.1操作數棧209
8.5.2生成通用指令210
8.5.3生成數據傳送指令213
8.5.4生成算術與邏輯運算指令217
8.5.5生成控制轉移指令221
8.5.6寄存器使用224
8.5.7本章用到的全局變量227
8.6成果展示227
......
請描述您所遇到的錯誤,我們將盡快予以修正,謝謝!
*必填項,請輸入內容