注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Lua解釋器構(gòu)建:從虛擬機(jī)到編譯器

Lua解釋器構(gòu)建:從虛擬機(jī)到編譯器

Lua解釋器構(gòu)建:從虛擬機(jī)到編譯器

定 價(jià):¥99.00

作 者: 吳尹杰 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111718833 出版時(shí)間: 2023-01-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  Lua是一門設(shè)計(jì)精簡、功能強(qiáng)大的腳本語言。本書將Lua解釋器拆解,使用C語言,一步一步構(gòu)建能夠正確運(yùn)行的Lua解釋器。本書共6章,分別為Lua解釋器概述,Lua虛擬機(jī),Lua腳本的編譯與虛擬機(jī)指令運(yùn)行流程,Lua編譯器,Lua的解釋器的其他基礎(chǔ)特征,dummylua開發(fā)案例:俄羅斯方塊。閱讀本書,并不需要讀者事先精通有關(guān)編譯原理的知識(shí),書中會(huì)嘗試用簡潔的語言,向讀者介紹相關(guān)的具體內(nèi)容。Lua解釋器構(gòu)建:從虛擬機(jī)到編譯器面向?qū)ua內(nèi)部以及解釋器的設(shè)計(jì)和實(shí)現(xiàn)感興趣的讀者,并要求讀者對(duì)C語言和Lua有一定的了解和使用經(jīng)驗(yàn)。本書免費(fèi)提供書中配套案例的全部源碼,相關(guān)獲取方式見封底。

作者簡介

  吳尹杰 網(wǎng)名Manistein,廣州某游戲開發(fā)有限公司服務(wù)端技術(shù)總監(jiān),熱愛計(jì)算機(jī)技術(shù),喜歡鉆研,熟悉多門編程語言,為知名服務(wù)端框架skynet貢獻(xiàn)過多篇核心源碼分析文檔。 個(gè)人博客地址:http://manistein.club/ 。

圖書目錄


前言
第1章 Lua解釋器概述/
1.1 Lua解釋器/
1.1.1 Lua解釋器的整體架構(gòu)/
1.1.2 Lua解釋器的運(yùn)行機(jī)制/
1.2 Lua虛擬機(jī)/
1.2.1 虛擬機(jī)簡介/
1.2.2 虛擬機(jī)指令的編碼方式/
1.2.3 虛擬機(jī)指令集/
1.3 Lua編譯器/
1.3.1 Lua的詞法分析器/
1.3.2 Lua的語法分析器/
1.4 從0開發(fā)一個(gè)Lua解釋器:dummylua項(xiàng)目/
1.4.1 項(xiàng)目簡介/
1.4.2 項(xiàng)目架構(gòu)說明/
第2章 Lua虛擬機(jī)/
2.1 Lua虛擬機(jī)基礎(chǔ)知識(shí)/
2.1.1 基本類型定義/
2.1.2 虛擬機(jī)全局狀態(tài)——global_State/
2.1.3 虛擬機(jī)的線程結(jié)構(gòu)——lua_State/
2.1.4 虛擬機(jī)中執(zhí)行函數(shù)的基礎(chǔ)——CallInfo結(jié)構(gòu)/
2.1.5 C函數(shù)在虛擬機(jī)線程中的調(diào)用流程/
2.1.6 虛擬機(jī)異常處理機(jī)制/
2.1.7 dummylua項(xiàng)目的虛擬機(jī)基礎(chǔ)實(shí)現(xiàn)/
2.2 為虛擬機(jī)添加垃圾回收機(jī)制/
2.2.1 標(biāo)記清除算法/
2.2.2 增量式標(biāo)記清除算法/
2.2.3 dummylua項(xiàng)目的垃圾回收機(jī)制實(shí)現(xiàn)/
2.3 Lua虛擬機(jī)的字符串/
2.3.1 Lua字符串概述/
2.3.2 Lua字符串結(jié)構(gòu)/
2.3.3 字符串的哈希運(yùn)算/
2.3.4 短字符串與內(nèi)部化/
2.3.5 長字符串與惰性哈希/
2.3.6 Lua-5.2的Hash DoS攻擊/
2.3.7 dummylua的字符串實(shí)現(xiàn)/
2.4 Lua虛擬機(jī)的表/
2.4.1 Lua表功能概述/
2.4.2 Lua表的基本數(shù)據(jù)結(jié)構(gòu)/
2.4.3 表的初始化/
2.4.4 鍵值的哈希運(yùn)算/
2.4.5 查找元素/
2.4.6 值的更新與插入/
2.4.7 調(diào)整表的大小/
2.4.8 表遍歷/
2.4.9 dummylua的表實(shí)現(xiàn)/
第3章 Lua腳本的編譯與虛擬機(jī)指令運(yùn)行流程 /
3.1 個(gè)編譯并運(yùn)行腳本的例子:讓Lua說“hello world”/
3.2 Lua的整體編譯和運(yùn)行流程/
3.3 虛擬機(jī)如何運(yùn)行編譯后的指令/
3.4 虛擬機(jī)輸出“hello world”的例子/
3.5 反編譯工具——protodump/
3.5.1 protodump工具簡介/
3.5.2 使用protodump反編譯Lua的字節(jié)碼/
3.5.3 反編譯結(jié)果分析/
3.6 標(biāo)準(zhǔn)庫加載流程/
3.7 Lua內(nèi)置編譯器補(bǔ)充說明/
3.7.1 EBNF簡介/
3.7.2 本章定義的EBNF/
3.7.3 詞法分析器設(shè)計(jì)與實(shí)現(xiàn)/
3.7.4 語句和表達(dá)式/
3.7.5 語法分析器的基礎(chǔ)設(shè)計(jì)與實(shí)現(xiàn)/
3.8 讓dummylua能夠編譯并運(yùn)行“hello world”腳本/
第4章 Lua編譯器/
4.1 Lua詞法分析器 /
4.1.1 詞法分析器簡介/
4.1.2 詞法分析器基本數(shù)據(jù)結(jié)構(gòu)/
4.1.3 詞法分析器的接口設(shè)計(jì)/
4.1.4 詞法分析器的初始化流程/
4.1.5 token識(shí)別流程/
4.1.6 一個(gè)測試用例/
4.1.7 dummylua的詞法分析器實(shí)現(xiàn)/
4.2 Lua語法分析器基礎(chǔ)——expr語句編譯流程/
4.2.1 語法分析器的主要工作/
4.2.2 實(shí)現(xiàn)的語法/
4.2.3 語法分析器基本數(shù)據(jù)結(jié)構(gòu)/
4.2.4 編譯邏輯與EBNF的關(guān)聯(lián)/
4.2.5 exprstat的邏輯結(jié)構(gòu)/
4.2.6 expr的構(gòu)造與編譯/
4.2.7 suffixedexp構(gòu)造與編譯/
4.2.8 assignment構(gòu)造和編譯/
4.2.9 為dummylua添加編譯exprstat的功能/
4.3 完整的Lua語法分析器/
4.3.1 Lua的語句塊/
4.3.2 local語句編譯流程/
4.3.3 doend語句編譯流程/
4.3.4 if語句編譯流程/
4.3.5 while語句編譯流程/
4.3.6 repeat語句編譯流程/
4.3.7 for語句編譯流程/
4.3.8 break語句編譯流程/
4.3.9 function語句編譯流程/
4.3.10 return語句編譯流程 /
4.3.11 dummylua的完整語法分析器實(shí)現(xiàn)/
第5章 Lua解釋器的其他基礎(chǔ)特性/
5.1 元表/
5.1.1 元表簡介/
5.1.2 元表的_index域/
5.1.3 元表的_newindex域/
5.1.4 雙目運(yùn)算事件/
5.1.5 dummylua的元表實(shí)現(xiàn)/
5.2 用戶數(shù)據(jù)/
5.2.1 用戶數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)/
5.2.2 用戶數(shù)據(jù)的接口/
5.2.3 用戶數(shù)據(jù)的垃圾回收處理/
5.2.4 用戶數(shù)據(jù)的user domain域內(nèi)部的堆內(nèi)存清理/
5.2.5 用戶數(shù)據(jù)的測試用例/
5.2.6 dummylua的用戶數(shù)據(jù)實(shí)現(xiàn)/
5.3 上值/
5.3.1 上值的定義/
5.3.2 Lua函數(shù)的探索/
5.3.3 上值的生成/
5.3.4 開放上值和已關(guān)閉上值/
5.3.5 dummylua的上值實(shí)現(xiàn)/
5.4 弱表 /
5.4.1 弱表的定義/
5.4.2 弱表的用途/
5.4.3 弱鍵/
5.4.4 弱值/
5.4.5 完全弱引用/
5.4.6 dummylua的弱表實(shí)現(xiàn)/
5.5 require機(jī)制 /
5.5.1 require功能簡述/
5.5.2 package初始化/
5.5.3 require運(yùn)作流程/
5.5.4 dummylua的require機(jī)制實(shí)現(xiàn)/
第6章 dummylua開發(fā)案例:俄羅斯方塊/
6.1 案例簡介/
6.2 案例代碼結(jié)構(gòu)/
6.3 編譯與運(yùn)行/
附錄/
附錄A Lua虛擬機(jī)指令集/
附錄B Lua的EBNF語法/

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)