Lua設計與實現檢視原始碼討論檢視歷史
《Lua設計與實現》,codedump 著,出版社: 人民郵電出版社。
人民郵電出版社是全國優秀出版社、全國百佳圖書出版單位。人民郵電出版社出版領域涵蓋科技出版、教育出版、大眾出版,涉及信息技術、通信、工業技術、科普[1]、經濟管理、攝影、藝術、運動與休閒、心理學、少兒、大中專教材等10餘個出版門類,年出版圖書[2]近萬種。
內容簡介
本書基於Lua 5.1.4版本討論了Lua語言的設計原理,全書共分三部分:前部分講解數據結構(如通用數據是如何表示的)、字符串以及表類型的實現原理;中間部分是本書重要的部分,主要討論了虛擬機的實現;第三部分討論了垃圾回收、模塊實現、熱更新、協程等的實現原理。
目錄
第1章 概述1 1.1 前世今生1 1.2 源碼組織5 1.3 Lua虛擬機工作流程6 第一部分 基礎數據類型 第2章 Lua中的數據類型10 2.1 C語言中實現通用數據結構的一般做法10 2.2 Lua通用數據結構的實現11 第3章 字符串16 3.1 概述16 3.2 字符串實現18 第4章 表24 4.1 數據結構24 4.2 操作算法26 4.2.1 查找26 4.2.2 新增元素27 4.2.3 迭代33 4.2.4 取長度操作33 第二部分 虛擬機 第5章 Lua虛擬機36 5.1 Lua執行過程概述36 5.2 數據結構與棧43 5.3 指令的解析46 5.4 指令格式47 5.5 指令的執行53 5.6 調試工具55 5.6.1 GDB調試55 5.6.2 使用ChunkSpy57 第6章 指令的解析與執行61 6.1 Lua詞法61 6.2 賦值類指令64 6.2.1 局部變量64 6.2.2 全局變量70 6.3 表相關的操作指令72 6.3.1 創建表72 6.3.2 查詢表78 6.3.3 元表的實現原理79 6.4 函數相關的操作指令84 6.4.1 相關數據結構85 6.4.2 函數的定義90 6.4.3 函數的調用與返回值的處理94 6.4.4 調用成員函數99 6.4.5 UpValue與閉包100 6.5 數值計算類指令105 6.6 關係邏輯類指令107 6.6.1 相關指令108 6.6.2 理論基礎108 6.6.3 相關數據結構及函數111 6.6.4 關係類指令114 6.6.5 邏輯類指令117 6.7 循環類指令121 6.7.1 理論基礎122 6.7.2 for循環指令122 6.7.3 其他循環129 第三部分 獨立功能的實現 第7章 GC算法132 7.1 原理132 7.2 數據結構135 7.3 具體流程138 7.3.1 新創建對象138 7.3.2 初始化階段140 7.3.3 掃描標記階段142 7.3.4 回收階段147 7.3.5 結束階段148 7.4 進度控制150 第8章 環境與模塊152 8.1 環境相關的變量152 8.2 模塊157 8.2.1 模塊的加載157 8.2.2 模塊的編寫159 8.2.3 模塊的熱更新原理161 第9章 調試器工作原理163 9.1 鈎子功能163 9.2 得到當前程序信息164 9.3 打印變量165 9.4 查看文件內容166 9.5 斷點的添加166 9.6 查看當前堆棧信息167 9.7 step和next指令的實現167 第10章 異常處理169 10.1 原理169 10.2 Lua實現170 第11章 協程175 11.1 概念175 11.2 相關的API177 11.3 實現180 11.4 對稱協程和非對稱協程184 附錄A 參考資料187
參考文獻
- ↑ 100部科普經典名著,豆瓣,2018-04-26
- ↑ 圖書的演變歷史資料,學習啦,2017-06-07