| | | 自己動手實現Lua:虛擬機、編譯器和標準庫 張秀宏 自己動手繫列 | 該商品所屬分類:圖書 -> 機械工業出版社 | 【市場價】 | 684-992元 | 【優惠價】 | 428-620元 | 【作者】 | 張秀宏 | 【出版社】 | 機械工業出版社 | 【ISBN】 | 9787111610229 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
![](/c49/99/10026499642438.jpg)
店鋪:機械工業出版社官方旗艦店 出版社:機械工業出版社 ISBN:9787111610229 商品編碼:10026499642438 品牌:機械工業出版社(CMP) 頁數:200 字數:150000 審圖號:9787111610229 作者:張秀宏
"![baecf198635367d9.jpg](https://img10.360buyimg.com/cms/jfs/t1/180445/28/6295/377762/60b0bd82E6c4ef32e/baecf198635367d9.jpg) 商品參數 商品基本信息 | 商品名稱: | 自己動手實現Lua:虛擬機、編譯器和標準庫 | 作者: | 張秀宏 | 市場價: | 89.00 | ISBN號: | 9787111610229 | 版次: | 1-1 | 出版日期: | 2018-10 | 頁數: | 412 | 字數: | 150 | 出版社: | 機械工業出版社 | 內容介紹 內容簡介 | 本書是一本面向Lua程序員和腳本語言愛好者的語言自制指南和實戰寶典。作者融合自己豐富的工程實踐經驗,詳細闡述Lua語言的核心語法和實現原理,深入探討Lua虛擬機、編譯器和標準庫,並給出了實際可以編譯執行的代碼。助你從零基礎開始編程實現Lua語言,徹底理解腳本語言工作原理。全書分為3個部分,共21章。*一部分主要討論LuaAPI和虛擬機實現,包括二進制chunk格式、Lua虛擬機指編程、錯誤處理等。*二部分主要討論Lua語法和編譯器實現,包括詞法分析、語法分析、代碼優化、代碼生成等。第三部分主要討論Lua輔助API和標準庫實現,包括基礎庫、實用工具庫、包和模塊、協程等。 | 目錄 目錄 | 前言 *一部分準備 *1章準備工作 3 1.1準備開發環境 3 1.1.1操作繫統 3 1.1.2安裝Lua 4 1.1.3安裝Go 4 1.2準備目錄結構 4 1.3本章小結 6 *二部分Lua虛擬機和Lua API *2章二進制chunk 9 2.1什麼是二進制chunk 10 2.2luac命令介紹 11 2.2.1編譯Lua源文件 11 2.2.2查看二進制chunk 13 2.3二進制chunk格式 15 2.3.1數據類型 16 2.3.2總體結構 17 2.3.3頭部 18 2.3.4函數原型 22 2.4解析二進制chunk 27 2.4.1讀取基本數據類型 28 2.4.2檢查頭部 29 2.4.3讀取函數原型 30 2.5測試本章代碼 33 2.6本章小結 36 第3章指令集 37 3.1指令集介紹 37 3.2指令編碼格式 38 3.2.1編碼模式 38 3.2.2操作碼 39 3.2.3操作數 40 3.2.4指令表 41 3.3指令解碼 42 3.4測試本章代碼 44 3.5本章小結 47 第4章Lua API 49 4.1Lua API介紹 49 4.2Lua棧 51 4.2.1Lua數據類型和值 51 4.2.2棧索引 54 4.2.3定義luaStack結構體 54 4.3Lua State 57 4.3.1定義LuaState接口 57 4.3.2定義luaState結構體 58 4.3.3基礎棧操縱方法 59 4.3.4Push方法 64 4.3.5Access方法 65 4.4測試本章代碼 69 4.5本章小結 70 第5章Lua運算符 71 5.1Lua運算符介紹 71 5.2自動類型轉換 75 5.3擴展LuaState接口 79 5.3.1Arith()方法 80 5.3.2Compare()方法 83 5.3.3Len()方法 85 5.3.4Concat()方法 86 5.4測試本章代碼 87 5.5本章小結 88 第6章虛擬機雛形 89 6.1添加LuaVM接口 89 6.1.1定義LuaVM接口 91 6.1.2改造luaState結構體 92 6.1.3實現LuaVM接口 93 6.2實現Lua虛擬機指令 94 6.2.1移動和跳轉指令 94 6.2.2加載指令 96 6.2.3算術運算指令 101 6.2.4長度和拼接指令 103 6.2.5比較指令 106 6.2.6邏輯運算指令 107 6.2.7for循環指令 110 6.3指令分派 113 6.4測試本章代碼 115 6.5本章小結 118 第7章表 119 7.1表介紹 119 7.2表內部實現 121 7.3表相關API 125 7.3.1Get方法 126 7.3.2Set方法 129 7.4表相關指令 131 7.4.1NEWTABLE 131 7.4.2GETTABLE 133 7.4.3SETTABLE 135 7.4.4SETLIST 136 7.5測試本章代碼 138 7.6本章小結 140 第8章函數調用 141 8.1函數調用介紹 141 8.2函數調用棧 143 8.2.1調用幀實現 144 8.2.2調用棧實現 145 8.3函數調用API 147 8.3.1Load() 148 8.3.2Call() 149 8.4函數調用指令 152 8.4.1CLOSURE 152 8.4.2CALL 153 8.4.3RETURN 157 8.4.4VARARG 158 8.4.5TAILCALL 159 8.4.6SELF 160 8.4.7擴展LuaVM接口 162 8.4.8改進SETLIST指令 163 8.5測試本章代碼 164 8.6本章小結 166 第9章Go函數調用 167 9.1Go函數登場 167 9.1.1添加Go函數類型 168 9.1.2擴展Lua API 169 9.1.3調用Go函數 170 9.2Lua注冊表 172 9.2.1添加注冊表 172 9.2.2操作注冊表 173 9.3全局環境 175 9.3.1使用API操作全局環境 175 9.3.2在Lua裡訪問全局環境 178 9.4測試本章代碼 179 9.5本章小結 181 *10章閉包和Upvalue 183 10.1閉包和Upvalue介紹 183 10.1.1背景知識 183 10.1.2Upvalue介紹 185 10.1.3全局變量 187 10.2Upvalue底層支持 189 10.2.1修改closure結構體 189 10.2.2Lua閉包支持 191 10.2.3Go閉包支持 192 10.3Upvalue相關指令 195 10.3.1GETUPVAL 195 10.3.2SETUPVAL 196 10.3.3GETTABUP 197 10.3.4SETTABUP 199 10.3.5JMP 200 10.4測試本章代碼 202 10.5本章小結 203 *1編程 205 1方法介紹 205 11.1表 206 11.1方法 206 11.2表 207 11.3方法 208 11.3.1方法 209 11.3.2方法 211 11.3.3方法 211 11.3.4方法 212 11.3.5方法 214 11.3.6函方法 216 11.4擴展Lua API 217 11.4.1GetMetatable() 218 11.4.2SetMetatable() 218 11.5測試本章代碼 219 11.6本章小結 222 *12章迭代器 223 12.1迭代器介紹 223 12.2next()函數 226 12.2.1修改luaTable結構體 227 12.2.2擴展Lua API 228 12.2.3實現next()函數 229 12.3通用for循環指令 229 12.4測試本章代碼 232 12.5本章小結 234 *13章異常和錯誤處理 235 13.1異常和錯誤處理介紹 235 13.2異常和錯誤處理API 237 13.2.1Error() 238 13.2.2PCall() 239 13.3error()和pcall()函數 240 13.4測試本章代碼 241 13.5本章小結 242 第三部分Lua語法和編譯器 *14章詞法分析 245 14.1編譯器介紹 245 14.2Lua詞法介紹 247 14.3實現詞法分析器 251 14.3.1定義Token類型 252 14.3.2空白字符 254 14.3.3注釋 256 14.3.4分隔符和運算符 256 14.3.5長字符串字面量 258 14.3.6短字符串字面量 259 14.3.7數字字面量 262 14.3.8標識符和關鍵字 263 14.4LookAhead()和其他方法 264 14.5測試本章代碼 265 14.6本章小結 267 *15章抽像語法樹 269 15.1抽像語法樹介紹 269 15.2Chunk和塊 270 15.3語句 272 15.3.1簡單語句 273 15.3.2while和repeat語句 273 15.3.3if語句 274 15.3.4數值for循環語句 275 15.3.5通用for循環語句 275 15.3.6局部變量聲明語句 276 15.3.7賦值語句 277 15.3.8非局部函數定義語句 278 15.3.9局部函數定義語句 279 15.4表達式 280 15.4.1簡單表達式 280 15.4.2運算符表達式 281 15.4.3表構造表達式 281 15.4.4函數定義表達式 282 15.4.5前綴表達式 283 15.4.6圓括號表達式 284 15.4.7表訪問表達式 284 15.4
|
" | | | | | |