用Go語言自制解釋器/圖靈程序設(shè)計(jì)叢書 版權(quán)信息
- ISBN:9787115588289
- 條形碼:9787115588289 ; 978-7-115-58828-9
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
用Go語言自制解釋器/圖靈程序設(shè)計(jì)叢書 本書特色
- 從零開始,自己寫一門語言- 體驗(yàn)從無到有實(shí)現(xiàn)類C語言的樂趣- 原版豆瓣評分9.5分跟隨本書,你將揭開解釋器的神秘面紗,通曉它的工作原理,并編寫出自己的解釋器。
用Go語言自制解釋器/圖靈程序設(shè)計(jì)叢書 內(nèi)容簡介
在程序員與計(jì)算機(jī)的“交流”過程中,解釋器無疑扮演著很好的翻譯角色。它為只懂0和1的計(jì)算機(jī)翻譯源代碼,為看似隨機(jī)的字符賦予含義。這是如何實(shí)現(xiàn)的呢?充滿好奇心的你,是否曾經(jīng)思考過這個(gè)問題?跟隨本書,你將揭開解釋器的神秘面紗,通曉它的工作原理,并編寫出自己的解釋器。本書采用Go語言來為自創(chuàng)的編程語言Monkey實(shí)現(xiàn)解釋器。你將為Monkey語言實(shí)現(xiàn)類C語法、變量綁定、基本數(shù)據(jù)類型、算術(shù)運(yùn)算、內(nèi)置函數(shù)、閉包等特性,并了解什么是詞法分析器、語法分析器和抽象語法樹。 本書適合Go語言學(xué)習(xí)者以及想深入理解程序設(shè)計(jì)語言編譯原理的讀者。
用Go語言自制解釋器/圖靈程序設(shè)計(jì)叢書 目錄
1.1 詞法分析 1
1.2 定義詞法單元 2
1.3 詞法分析器 4
1.4 擴(kuò)展詞法單元和詞法分析器 14
1.5 編寫REPL 20
第 2章 語法分析 23
2.1 語法分析器 23
2.2 為什么不用語法分析器生成器 26
2.3 為Monkey 語言編寫語法分析器 27
2.4 語法分析器的第 一步:解析let語句 28
2.5 解析return語句 42
2.6 解析表達(dá)式 44
2.6.1 Monkey 中的表達(dá)式 45
2.6.2 自上而下的運(yùn)算符優(yōu)先級分析(也稱普拉特解析法) 46
2.6.3 術(shù)語 47
2.6.4 準(zhǔn)備AST 48
2.6.5 實(shí)現(xiàn)普拉特語法分析器 52
2.6.6 標(biāo)識(shí)符 53
2.6.7 整數(shù)字面量 57
2.6.8 前綴運(yùn)算符 60
2.6.9 中綴運(yùn)算符 65
2.7 普拉特解析的工作方式 72
2.8 擴(kuò)展語法分析器 81
2.8.1 布爾字面量 83
2.8.2 分組表達(dá)式 87
2.8.3 if 表達(dá)式 88
2.8.4 函數(shù)字面量 94
2.8.5 調(diào)用表達(dá)式 100
2.8.6 刪除TODO 105
2.9 RPPL 107
第3章 求值 110
3.1 為符號賦予含義 110
3.2 求值策略 111
3.3 樹遍歷解釋器 113
3.4 表示對象 114
3.4.1 對象系統(tǒng)的基礎(chǔ) 116
3.4.2 整數(shù) 116
3.4.3 布爾值 117
3.4.4 空值 118
3.5 求值表達(dá)式 118
3.5.1 整數(shù)字面量 119
3.5.2 完成REPL 122
3.5.3 布爾字面量 123
3.5.4 空值 125
3.5.5 前綴表達(dá)式 126
3.5.6 中綴表達(dá)式 129
3.6 條件語句 135
3.7 return語句 139
3.8 錯(cuò)誤處理 143
3.9 綁定與環(huán)境 149
3.10 函數(shù)和函數(shù)調(diào)用 154
3.11 如何處理垃圾 165
第4章 擴(kuò)展解釋器 168
4.1 數(shù)據(jù)類型和函數(shù) 168
4.2 字符串 168
4.2.1 在詞法分析器中支持字符串 169
4.2.2 字符串語法分析 172
4.2.3 字符串求值 173
4.2.4 字符串連接 175
4.3 內(nèi)置函數(shù) 177
4.4 數(shù)組 182
4.4.1 在詞法分析器中支持?jǐn)?shù)組 183
4.4.2 數(shù)組字面量語法分析 185
4.4.3 索引運(yùn)算符表達(dá)式語法分析 188
4.4.4 數(shù)組字面量求值 192
4.4.5 索引運(yùn)算符表達(dá)式求值 194
4.4.6 為數(shù)組添加內(nèi)置函數(shù) 197
4.4.7 測試驅(qū)動(dòng)數(shù)組 201
4.5 哈希表 202
4.5.1 哈希字面量詞法分析 203
4.5.2 哈希字面量語法分析 205
4.5.3 哈希對象 210
4.5.4 哈希字面量求值 215
4.5.5 哈希索引表達(dá)式求值 218
4.6 大結(jié)局 222
第5章 遺失的篇章:Monkey的宏系統(tǒng) 224
5.1 宏系統(tǒng) 224
5.2 Monkey 的宏系統(tǒng) 227
5.3 quote 229
5.4 unquote 233
5.4.1 遍歷樹 235
5.4.2 替換unquote調(diào)用 248
5.5 宏擴(kuò)展 256
5.5.1 macro關(guān)鍵字 257
5.5.2 宏字面量語法分析 259
5.5.3 定義宏 262
5.5.4 展開宏 267
5.5.5 強(qiáng)大的unless 宏 271
5.6 擴(kuò)展REPL 273
5.7 關(guān)于宏的一些暢想 274
用Go語言自制解釋器/圖靈程序設(shè)計(jì)叢書 作者簡介
索斯藤.鮑爾(Thorsten Ball)Sourcegraph軟件工程師,精通多門程序設(shè)計(jì)語言,包括Go、C、JavaScript和Ruby,深諳編譯原理、系統(tǒng)編程、Unix、數(shù)據(jù)庫等相關(guān)技術(shù)。現(xiàn)居德國,長期活躍于歐洲各大技術(shù)大會(huì)。孫波翔軟件工程師,碩士畢業(yè)后旅居法國。從事與Python、Go相關(guān)的研究和工作,熱愛開源,側(cè)重于Python、GUI、編譯器方向。給NumPy、PySide2、wxWidgets、Cython、Pyston v1解釋器等開源項(xiàng)目貢獻(xiàn)過代碼,另譯有《深入理解Python特性》。
- >
經(jīng)典常談
- >
唐代進(jìn)士錄
- >
煙與鏡
- >
新文學(xué)天穹兩巨星--魯迅與胡適/紅燭學(xué)術(shù)叢書(紅燭學(xué)術(shù)叢書)
- >
史學(xué)評論
- >
龍榆生:詞曲概論/大家小書
- >
姑媽的寶刀
- >
有舍有得是人生