用 Go語言自製解釋器 Writing An Interpreter In Go
[德] 索斯藤·鮑爾(Thorsten Ball)
- 出版商: 人民郵電
- 出版日期: 2022-06-01
- 售價: $599
- 貴賓價: 9.5 折 $569
- 語言: 簡體中文
- 頁數: 276
- ISBN: 7115588287
- ISBN-13: 9787115588289
-
相關分類:
Go 程式語言
- 此書翻譯自: Writing An Interpreter In Go
立即出貨
買這商品的人也買了...
-
編譯原理, 2/e (Compilers : Principles, Techniques, and Tools, 2/e)$534$507 -
$474自製編程語言 -
30天自製操作系統【附代碼光盤30天從零開始編寫圖形操作系統】$779$740 -
$422精通 Linux 設備驅動程序開發 (Essential Linux Device Drivers) -
$454現代編譯原理 C語言描述 (修訂版) -
Go語言高併發與微服務實戰$534$507 -
GAN 對抗式生成網路 (GANs in Action: Deep learning with Generative Adversarial Networks)$750$593 -
深入淺出 Go (Head First Go)$880$695 -
完全自學!Go 語言 (Golang) 實戰聖經 (The Go Workshop: Learn to write clean, efficient code and build high-performance applications with Go)$880$695 -
CQRS 命令查詢職責分離模式 (Command Query Responsibility Segregation)$500$390 -
Go 學習手冊 (Learning Go)$580$458 -
$327深入理解 RISC-V 程序開發 -
C++ 程式設計的樂趣|範例實作與專題研究的程式設計課 (C++ Crash Course: A Fast-Paced Introduction)$880$748 -
$517RocketMQ 技術內幕:RocketMQ 架構設計與實現原理, 2/e -
深入理解 RPC 框架原理與實現$708$673 -
$407Go 語言定製指南 -
軟體架構:困難部分 (Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures)$780$616 -
$509用 Go語言自製編譯器 -
最速網頁開發:用 Go Web 一手建立高能效網站系統, 2/e$880$695 -
$607Python 高效編程 — 基於 Rust語言 -
$602計算機底層的秘密 -
流暢的 Python|清晰、簡潔、高效的程式設計, 2/e (Fluent Python: Clear, Concise, and Effective Programming, 2/e)$1,200$948 -
左耳聽風:傳奇程序員練級攻略$528$502 -
C 的快速 + Python 的易學 - Go語言全功能開發養成書$880$695 -
並發編程圖解$588$559
簡體館年度書展|現貨2書79折3書75折 詳見活動內容 »
-
VIP 95折
深入淺出 SSD 測試 : 固態存儲測試流程 方法與工具$594$564 -
VIP 95折
MCP 開發從入門到實戰$515$489 -
85折
$806Linux x64 匯編語言編程 -
VIP 95折
MCP 極簡開發 : 輕鬆打造高效智能體$479$455 -
VIP 95折
RISC-V 架構 DSP 處理器設計$534$507 -
VIP 95折
硬件系統模糊測試:技術揭秘與案例剖析$419$398 -
85折
$454RAG 實踐權威指南:構建精準、高效大模型之道 -
VIP 95折
CUDA 並行編程與性能優化$714$678 -
VIP 95折
生成式視覺模型原理與實踐$288$274 -
87折
$459AI大模型:賦能通信產業 -
VIP 95折
科學預測——預見科學之美$408$388 -
VIP 95折
Processing創意編程入門:從編程原理到項目案例$299$284 -
VIP 95折
大模型驅動的具身智能 架構,設計與實現$534$507 -
VIP 95折
納米級CMOS VLSI電路(可制造性設計)$474$450 -
VIP 95折
Manus應用與AI Agent設計指南:從入門到精通$359$341 -
87折
$360高薪Offer 簡歷、面試、談薪完全攻略 -
VIP 95折
軟件系統優化$534$507 -
VIP 95折
芯片的較量 (日美半導體風雲)$414$393 -
VIP 95折
Manus AI 智能體從入門到精通$294$279 -
87折
$981深度學習:基礎與概念 -
85折
$505GitHub Copilot 編程指南 -
87折
$469Cursor 與 Copilot 開發實戰 : 讓煩瑣編程智能化 -
85折
$551C#核心編程200例(視頻課程+全套源程序) -
VIP 95折
Verilog HDL計算機網絡典型電路算法設計與實現$354$336 -
VIP 95折
SAAS + AI 架構實戰:業務解析、架構設計、AI 應用$708$673
簡體館年度書展|現貨2書79折3書75折 詳見活動內容 »
-
85折
$806Linux x64 匯編語言編程 -
VIP 95折
MCP 極簡開發 : 輕鬆打造高效智能體$479$455 -
VIP 95折
硬件系統模糊測試:技術揭秘與案例剖析$419$398 -
VIP 95折
生成式視覺模型原理與實踐$288$274 -
87折
$459AI大模型:賦能通信產業 -
VIP 95折
科學預測——預見科學之美$408$388 -
VIP 95折
Processing創意編程入門:從編程原理到項目案例$299$284 -
87折
$360高薪Offer 簡歷、面試、談薪完全攻略 -
VIP 95折
軟件系統優化$534$507 -
85折
$505GitHub Copilot 編程指南 -
85折
$551C#核心編程200例(視頻課程+全套源程序) -
VIP 95折
SAAS + AI 架構實戰:業務解析、架構設計、AI 應用$708$673 -
VIP 95折
深入淺出 Docker, 2/e$419$398 -
85折
$658Unity 特效制作:Shader Graph 案例精講 -
79折
$275零基礎玩轉國產大模型DeepSeek -
VIP 95折
人工智能大模型:機器學習基礎$774$735 -
VIP 95折
RAG 極簡入門:原理與實踐$419$398 -
VIP 95折
大模型實戰 : 從零實現 RAG 與 Agent 系統$419$398 -
VIP 95折
算法趣學(第2版)$348$331 -
VIP 95折
大模型理論與實踐——打造行業智能助手$354$336 -
VIP 95折
大模型應用開發 RAG 實戰課$599$569 -
85折
$509生成式人工智能 (基於 PyTorch 實現) -
VIP 95折
機器人抓取力學$894$849 -
VIP 95折
集成電路版圖設計從入門到精通$474$450 -
VIP 95折
Java 學習筆記, 6/e$839$797
相關主題
商品描述
在程序員與電腦的“交流”過程中,解釋器無疑扮演著優秀的翻譯角色。它為只懂0和1的電腦翻譯源代碼,為看似隨機的字符賦予含義。這是如何實現的呢?充滿好奇心的你,是否曾經思考過這個問題?跟隨本書,你將揭開解釋器的神秘面紗,通曉它的工作原理,並編寫出自己的解釋器。本書採用Go語言來為自創的編程語言Monkey實現解釋器。你將為Monkey語言實現類C語法、變量綁定、基本數據類型、算術運算、內置函數、閉包等特性,並瞭解什麼是詞法分析器、語法分析器和抽象語法樹。
作者簡介
索斯藤·鮑爾(Thorsten Ball)
Sourcegraph軟件工程師,精通多門程序設計語言,包括Go、C、JavaScript和Ruby,深諳編譯原理、系統編程、Unix、數據庫等相關技術。現居德國,長期活躍於歐洲各大技術大會。
孫波翔
軟件工程師,碩士畢業後旅居法國。從事與Python、Go相關的研究和工作,熱愛開源,側重於Python、GUI、編譯器方向。給NumPy、PySide2、wxWidgets、Cython、Pyston v1解釋器等開源項目貢獻過代碼,另譯有《深入理解Python特性》。
目錄大綱
第 1章 詞法分析 1
1.1 詞法分析 1
1.2 定義詞法單元 2
1.3 詞法分析器 4
1.4 擴展詞法單元和詞法分析器 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 解析表達式 44
2.6.1 Monkey 中的表達式 45
2.6.2 自上而下的運算符優先級分析(也稱普拉特解析法) 46
2.6.3 術語 47
2.6.4 準備AST 48
2.6.5 實現普拉特語法分析器 52
2.6.6 標識符 53
2.6.7 整數字面量 57
2.6.8 前綴運算符 60
2.6.9 中綴運算符 65
2.7 普拉特解析的工作方式 72
2.8 擴展語法分析器 81
2.8.1 布爾字面量 83
2.8.2 分組表達式 87
2.8.3 if 表達式 88
2.8.4 函數字面量 94
2.8.5 調用表達式 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 對象系統的基礎 116
3.4.2 整數 116
3.4.3 布爾值 117
3.4.4 空值 118
3.5 求值表達式 118
3.5.1 整數字面量 119
3.5.2 完成REPL 122
3.5.3 布爾字面量 123
3.5.4 空值 125
3.5.5 前綴表達式 126
3.5.6 中綴表達式 129
3.6 條件語句 135
3.7 return語句 139
3.8 錯誤處理 143
3.9 綁定與環境 149
3.10 函數和函數調用 154
3.11 如何處理垃圾 165
第4章 擴展解釋器 168
4.1 數據類型和函數 168
4.2 字符串 168
4.2.1 在詞法分析器中支持字符串 169
4.2.2 字符串語法分析 172
4.2.3 字符串求值 173
4.2.4 字符串連接 175
4.3 內置函數 177
4.4 數組 182
4.4.1 在詞法分析器中支持數組 183
4.4.2 數組字面量語法分析 185
4.4.3 索引運算符表達式語法分析 188
4.4.4 數組字面量求值 192
4.4.5 索引運算符表達式求值 194
4.4.6 為數組添加內置函數 197
4.4.7 測試驅動數組 201
4.5 哈希表 202
4.5.1 哈希字面量詞法分析 203
4.5.2 哈希字面量語法分析 205
4.5.3 哈希對象 210
4.5.4 哈希字面量求值 215
4.5.5 哈希索引表達式求值 218
4.6 大結局 222
第5章 遺失的篇章:Monkey的宏系統 224
5.1 宏系統 224
5.2 Monkey 的宏系統 227
5.3 quote 229
5.4 unquote 233
5.4.1 遍歷樹 235
5.4.2 替換unquote調用 248
5.5 宏擴展 256
5.5.1 macro關鍵字 257
5.5.2 宏字面量語法分析 259
5.5.3 定義宏 262
5.5.4 展開宏 267
5.5.5 強大的unless 宏 271
5.6 擴展REPL 273
5.7 關於宏的一些暢想 274


