Lua 設計與實現 Lua设计与实现

codedump

  • Lua 設計與實現-preview-1
  • Lua 設計與實現-preview-2
Lua 設計與實現-preview-1

買這商品的人也買了...

商品描述

本書基於Lua 5.1.4版本討論了Lua語言的設計原理,全書共分三部分:前部分講解數據結構(如通用數據是如何表示的)、字符串以及表類型的實現原理;中間部分是本書重要的部分,主要討論了虛擬機的實現;第三部分討論了垃圾回收、模塊實現、熱更新、協程等的實現原理。

作者簡介

作者網名codedump,長期從事互聯網後端服務開發工作。曾經在網易等公司從事遊戲服務器後台開發,在網絡遊戲開發工作期間接觸到使用C++編寫服務核心引擎和使用Lua腳本編寫遊戲邏輯的技術組合後,對Lua產生了濃厚的興趣,遂開始研究其實現原理,陸續公佈於網絡。個人博客:www.codedump.info。

目錄大綱

第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