作 者:codedump 著
定 價:49
出 版 社:人民郵電出版社
出版日期:2017年08月01日
頁 數:186
裝 幀:簡裝
ISBN:9787115465375
一本揭示Lua實現原理的圖書經典的純C語言項目分析一線開發人員傾力打造Lua是一種可嵌入、輕量、快速、功能強大的腳本語言,使用較為廣泛,主要用在遊戲領域。另外,基於Nginx的OpenResty也是使用Lua來編寫腳本的,很多服務器(如Redis)也支持使用Lua來編寫腳本。作為一門誕生已經超過20年的語言,它在設計上是很好克制的。以Lua 5.1.4版本來說,其解釋器加上周邊的庫函數等也就不過一萬多行的代碼量,而如果再進行精簡,隻需要喫透核心的幾千行代碼就可以了。另外,作為一門以純等
●章 概述11.1 前世今生11.2 源碼組織51.3 Lua虛擬機工作流程6部分 基礎數據類型第2章 Lua中的數據類型102.1 C語言中實現通用數據結構的一般做法102.2 Lua通用數據結構的實現11第3章 字符串163.1 概述163.2 字符串實現18第4章 表244.1 數據結構244.2 操作算法264.2.1 查找264.2.2  素274.2.3 迭代334.2.4 取長度操作33第二部分 虛擬機第5章 Lua虛擬機365.1 Lua執行過程概述365.2 數據結構與棧435.3 指令的解析465.4 指令格式475.5 指令的執行535.6 調試工具555.6.1 GDB調試555.6.2 使用ChunkSpy57第6章 指令的解析與執行616.1 Lua詞法616.2 賦值類指令646.2.1 局部變量646.2.2 全局變量706.3 表相關的操作指令726.3.1 創建表726.3.2 查詢表786.3.3 &nb表的實現原理796.4 函數相關的操作指令846.4.1 相關數據結構856.4.2 函數的定義906.4.3 函數的調用與返回值的處理946.4.4 調用成員函數996.4.5 UpValue與閉包1006.5 數值計算類指令1056.6 關繫邏輯類指令1076.6.1 相關指令1086.6.2 理論基礎1086.6.3 相關數據結構及函數1116.6.4 關繫類指令1146.6.5 邏輯類指令1176.7 循環類指令1216.7.1 理論基礎1226.7.2 for循環指令1226.7.3 其他循環129第三部分 獨立功能的實現第7章 GC算法1327.1 原理1327.2 數據結構1357.3 具體流程1387.3.1 新創建對像1387.3.2 初始化階段1407.3.3 掃描標記階段1427.3.4 回收階段1477.3.5 結束階段1487.4 進度控制150第8章 環境與模塊1528.1 環境相關的變量1528.2 模塊1578.2.1 模塊的加載1578.2.2 模塊的編寫1598.2.3 模塊的熱更新原理161第9章 調試器工作原理1639.1 鉤子功能1639.2 得到當前程序信息1649.3 打印變量1659.4 查看文件內容1669.5 斷點的添加1669.6 查看當前堆棧信息1679.7 step和next指令的實現1670章 異常處理16910.1 原理16910.2 Lua實現1701章 協程17511.1 概念17511.2 相關的API17711.3 實現18011.4 對稱協程和非對稱協程184附錄A 參考資料187
本書基於Lua 5.1.4版本討論了Lua語言的設計原理,全書共分三部分:前部分講解數據結構(如通用數據是如何表示的)、字符串以及表類型的實現原理;中間部分是本書重要的部分,主要討論了虛擬機的實現;第三部分討論了垃圾回收、模塊實現、熱更新、協程等的實現原理。
codedump 著
網名codedump,長期從事互聯網後端服務開發工作。曾經在網易等公司從事遊戲服務器後臺開發,在網絡遊戲開發工作期間接觸到使用C++編寫服務核心引擎和使用Lua腳本編寫遊戲邏輯的技術組合後,對Lua產生了濃厚的興趣,遂開始研究其實現原理,陸續公布於網絡。個人博客:www.codedump.info。