用Go語言自製編譯器

用Go語言自製編譯器

《用Go語言自製編譯器》是2022年人民郵電出版社2022年出版的圖書,作者是[德]索斯藤·鮑爾(Thorsten Ball)。

基本介紹

  • 中文名:用Go語言自製編譯器
  • 作者:[德]索斯藤·鮑爾(Thorsten Ball)
  • 譯者:廖彬
  • 出版時間:2022年6月
  • 出版社:人民郵電出版社
  • ISBN:9787115591104
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,作者簡介,

內容簡介

本書是《用Go語言自製解釋器》的續篇。在自製解釋器時,通過學習《用Go語言自製解釋器》,讀者已經為Monkey語言實現了類C語法、變數綁定、基本數據類型、算術運算、內置函式、閉包等特性。在本書中,Monkey將繼續“進化”,並最終成長為成熟的程式設計語言。在已有詞法分析器、語法分析器和抽象語法樹的基礎上,通過學習本書,讀者將為Monkey語言定義位元組碼指令,指定運算元,編寫反彙編程式,構建執行位元組碼的虛擬機。通過動手學習,讀者將能夠體驗從無到有實現類C語言的樂趣。

圖書目錄

第 1章 編譯器與虛擬機 1
1.1 編譯器 2
1.2 虛擬機與物理機 5
1.2.1 物理機 6
1.2.2 什麼是虛擬機 11
1.2.3 為什麼要構建虛擬機 14
1.2.4 位元組碼 15
1.3 虛擬機與編譯器的二元性 17
第 2章 你好,位元組碼! 19
2.1 第 一條指令 20
2.1.1 以位元組作為開端 21
2.1.2 最小編譯器 26
2.1.3 位元組碼與反彙編程式 32
2.1.4 回歸初心,繼續前行 37
2.1.5 給機器上電 40
2.2 棧上加法 46
2.3 連線REPL 52
第3章 編譯表達式 55
3.1 棧清理 55
3.2 中綴表達式 60
3.3 布爾類型 64
3.4 比較運算符 69
3.5 前綴表達式 76
第4章 條件語句 83
4.1 跳轉 86
4.2 編譯條件語句 88
4.3 執行跳轉 103
4.4 歡迎回來,Null 值 106
第5章 追蹤名稱 115
5.1 計畫 116
5.2 編譯綁定 117
5.2.1 添加符號表 120
5.2.2 在編譯器中使用符號 123
5.3 在虛擬機中支持全局變數 126
第6章 字元串、數組和哈希表 132
6.1 字元串 132
6.2 數組 138
6.3 哈希表 142
6.4 索引運算符 149
第7章 函式 156
7.1 一個簡單的函式 156
7.1.1 函式表示 157
7.1.2 執行函式的操作碼 158
7.1.3 編譯函式字面量 161
7.1.4 編譯函式調用 176
7.1.5 虛擬機中的函式 179
7.1.6 一點獎勵 190
7.2 局部綁定 191
7.2.1 局部綁定操作碼 192
7.2.2 編譯局部綁定 195
7.2.3 在虛擬機中實現局部綁定 208
7.3 參數 218
7.3.1 編譯帶參數的函式調用 219
7.3.2 將引用解析為參數 224
7.3.3 虛擬機中的參數 227
第8章 內置函式 237
8.1 使修改變得簡單 238
8.2 做出改變:計畫 244
8.3 內置函式作用域 245
8.4 執行內置函式 250
第9章 閉包 256
9.1 問題 257
9.2 計畫 258
9.3 將一切視為閉包 260
9.4 編譯和解析自由變數 271
9.5 運行時創建閉包 283
9.6 遞歸閉包 288
第 10章 最後的測試 303

作者簡介

索斯藤·鮑爾(Thorsten Ball)
Sourcegraph軟體工程師,精通多門程式設計語言,包括Go、C、JavaScript和Ruby,深諳編譯原理、系統編程、Unix、資料庫等相關技術。現居德國,長期活躍於歐洲各大技術大會。
廖彬
畢業於中國科學院計算技術研究所,高級語言虛擬機愛好者,在語言虛擬機領域從事開發近十年,曾就職於阿里巴巴和騰訊。

相關詞條

熱門詞條

聯絡我們