中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
自己動手系列自己動手實現LUA:虛擬機編譯器和標準庫

包郵 自己動手系列自己動手實現LUA:虛擬機編譯器和標準庫

作者:張秀宏
出版社:機械工業出版社出版時間:2017-02-01
開本: 16開 頁數: 412
中 圖 價:¥62.4(7.0折) 定價  ¥89.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

自己動手系列自己動手實現LUA:虛擬機編譯器和標準庫 版權信息

自己動手系列自己動手實現LUA:虛擬機編譯器和標準庫 本書特色

適讀人群 :主要面對三類人群:?對腳本語言實現原理感興趣?對編譯原理和虛擬機感興趣?對Lua語言感興趣,想探究其內部實行 (1)作者是的服務器開發工程師和架構師,精通Java、GO和Lua等語言,對高級語言的虛擬機有深入研究,《自己動手寫Java虛擬機》作者。 (2)本書3大內容特色:零基礎自制編程語言、徹底掌握Lua語言實現原理和工作機制、提升Go和Java語言編程能力。 (3)本書得到了七牛云創始人兼CEO等大佬的高度評價和推薦。

自己動手系列自己動手實現LUA:虛擬機編譯器和標準庫 內容簡介

本書是一本面向Lua程序員和腳本語言愛好者的語言自制指南和實戰寶典。作者融合自己豐富的工程實踐經驗,詳細闡述Lua語言的核心語法和實現原理,深入探討Lua虛擬機、編譯器和標準庫,并給出了實際可以編譯執行的代碼。助你從零基礎開始編程實現Lua語言,有效理解腳本語言工作原理。全書分為3個部分,共21章。靠前部分主要討論LuaAPI和虛擬機實現,包括二進制chunk格式、Lua虛擬機指令集、元編程、錯誤處理等。第二部分主要討論Lua語法和編譯器實現,包括詞法分析、語法分析、代碼優化、代碼生成等。第三部分主要討論Lua輔助API和標準庫實現,包括基礎庫、實用工具庫、包和模塊、協程等。

自己動手系列自己動手實現LUA:虛擬機編譯器和標準庫 目錄

前言
**部分 準備
第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.2 luac命令介紹 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.1 Lua API介紹 49
4.2 Lua棧 51
4.2.1 Lua數據類型和值 51
4.2.2 棧索引 54
4.2.3 定義luaStack結構體 54
4.3 Lua State 57
4.3.1 定義LuaState接口 57
4.3.2 定義luaState結構體 58
4.3.3 基礎棧操縱方法 59
4.3.4 Push方法 64
4.3.5 Access方法 65
4.4 測試本章代碼 69
4.5 本章小結 70
第5章 Lua運算符 71
5.1 Lua運算符介紹 71
5.2 自動類型轉換 75
5.3 擴展LuaState接口 79
5.3.1 Arith()方法 80
5.3.2 Compare()方法 83
5.3.3 Len()方法 85
5.3.4 Concat()方法 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.7 for循環指令 110
6.3 指令分派 113
6.4 測試本章代碼 115
6.5 本章小結 118
第7章 表 119
7.1 表介紹 119
7.2 表內部實現 121
7.3 表相關API 125
7.3.1 Get方法 126
7.3.2 Set方法 129
7.4 表相關指令 131
7.4.1 NEWTABLE 131
7.4.2 GETTABLE 133
7.4.3 SETTABLE 135
7.4.4 SETLIST 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.1 Load() 148
8.3.2 Call() 149
8.4 函數調用指令 152
8.4.1 CLOSURE 152
8.4.2 CALL 153
8.4.3 RETURN 157
8.4.4 VARARG 158
8.4.5 TAILCALL 159
8.4.6 SELF 160
8.4.7 擴展LuaVM接口 162
8.4.8 改進SETLIST指令 163
8.5 測試本章代碼 164
8.6 本章小結 166
第9章 Go函數調用 167
9.1 Go函數登場 167
9.1.1 添加Go函數類型 168
9.1.2 擴展Lua API 169
9.1.3 調用Go函數 170
9.2 Lua注冊表 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.2 Upvalue介紹 185
10.1.3 全局變量 187
10.2 Upvalue底層支持 189
10.2.1 修改closure結構體 189
10.2.2 Lua閉包支持 191
10.2.3 Go閉包支持 192
10.3 Upvalue相關指令 195
10.3.1 GETUPVAL 195
10.3.2 SETUPVAL 196
10.3.3 GETTABUP 197
10.3.4 SETTABUP 199
10.3.5 JMP 200
10.4 測試本章代碼 202
10.5 本章小結 203
第11章 元編程 205
11.1 元表和元方法介紹 205
11.1.1 元表 206
11.1.2 元方法 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.1 GetMetatable() 218
11.4.2 SetMetatable() 218
11.5 測試本章代碼 219
11.6 本章小結 222
第12章 迭代器 223
12.1 迭代器介紹 223
12.2 next()函數 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.1 Error() 238
13.2.2 PCall() 239
13.3 error()和pcall()函數 240
13.4 測試本章代碼 241
13.5 本章小結 242
第三部分 Lua語法和編譯器
第14章 詞法分析 245
14.1 編譯器介紹 245
14.2 Lua詞法介紹 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.4 LookAhead()和其他方法 264
14.5 測試本章代碼 265
14.6 本章小結 267
第15章 抽象語法樹 269
15.1 抽象語法樹介紹 269
15.2 Chunk和塊 270
15.3 語句 272
15.3.1 簡單語句 273
15.3.2 while和repeat語句 273
15.3.3 if語句 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.8 函數調用表達式 285
15.5 本章小結 286
第16章 語法分析 287
16.1 語法分析介紹 287
16.1.1 歧義 288
16.1.2 前瞻和回溯 289
16.1.3 解析方式 290
16.2 解析塊 290
16.3 解析語句 293
16.3.1 簡單語句 294
16.3.2 if語句 296
16.3.3 for循環語句 297
16.3.4 局部變量聲明和函數定義語句 299
16.3.5 賦值和函數調用語句 300
16.3.6 非局部函數定義語句 302
16.4 解析表達式 303
16.4.1 運算符表達式 304
16.4.2 非運算符表達式 306
16.4.3 函數定義表達式 307
16.4.4 表構造表達式 308
16.4.5 前綴表達式 310
16.4.6 圓括號表達式 311
16.4.7 函數調用表達式 312
16.4.8 表達式優化 313
16.5 測試本章代碼 315
16.6 本章小結 316
第17章 代碼生成 317
17.1 定義funcInfo結構體 317
17.1.1 常量表 318
17.1.2 寄存器分配 319
17.1.3 局部變量表 320
17.1.4 Break表 323
17.1.5 Upvalue表 324
17.1.6 字節碼 325
17.1.7 其他信息 327
17.2 編譯塊 327
17.3 編譯語句 329
17.3.1 簡單語句 330
17.3.2 while和repeat語句 331
17.3.3 if語句 333
17.3.4 for循環語句 334
17.3.5 局部變量聲明語句 335
17.3.6 賦值語句 337
17.4 編譯表達式 339
17.4.1 函數定義表達式 340
17.4.2 表構造表達式 341
17.4.3 運算符表達式 343
17.4.4 名字和表訪問表達式 345
17.4.5 函數調用表達式 346
17.5 生成函數原型 347
17.6 使用編譯器 349
17.7 測試本章代碼 350
17.8 本章小結 350
第四部分 Lua標準庫
第18章 輔助API和基礎庫 353
18.1 Lua標準庫介紹 353
18.2 輔助API 355
18.2.1 增強版方法 357
18.2.2 加載方法 358
18.2.3 參數檢查方法 359
18.2.4 標準庫開啟方法 360
18.3 基礎庫 361
18.3.1 基礎庫介紹 362
18.3.2 基礎庫實現 362
18.4 測試本章代碼 365
18.5 本章小結 366
第19章 工具庫 367
19.1 數學庫 367
19.2 表庫 369
19.3 字符串庫 372
19.4 UTF-8庫 374
19.5 OS庫 376
19.6 本章小結 379
第20章 包和模塊 381
20.1 包和模塊介紹 381
20.2 實現包庫 386
20.3 測試本章代碼 391
20.4 本章小結 392
第21章 協程 393
21.1 協程介紹 393
21.2 協程API 396
21.2.1 支持線程類型 396
21.2.2 支持協程操作 398
21.3 實現協程庫 400
21.4 測試本章代碼 403
21.5 本章小結 404
附錄A Lua虛擬機指令集 405
附錄B Lua語法EBNF描述 407
后記 409
展開全部

自己動手系列自己動手實現LUA:虛擬機編譯器和標準庫 作者簡介

作者簡介 張秀宏 服務器開發工程師,有多年的Java和游戲服務器開發和架構經驗,對高級語言虛擬機有非常深入的研究。曾在EA、樂元素等游戲公司擔任高級服務器工程師,現任某創業公司架構師。 曾于2016年6月出版《自己動手寫Java虛擬機》一書,廣受讀者好評,并多次重印。《自己動手實現Lua:虛擬機、編譯器、標準庫》是他時隔兩年之后推出的又一力作。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 番茄畅听邀请码怎么输入 - Dianw8.com| 成都装修公司-成都装修设计公司推荐-成都朗煜装饰公司 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 定制/定做衬衫厂家/公司-衬衫订做/订制价格/费用-北京圣达信 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 水轮机密封网 | 水轮机密封产品研发生产厂家 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 蔡司三坐标-影像测量机-3D扫描仪-蔡司显微镜-扫描电镜-工业CT-ZEISS授权代理商三本工业测量 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 车件|铜件|车削件|车床加工|五金冲压件-PIN针,精密车件定制专业厂商【东莞品晔】 | 冷油器,取样冷却器,热力除氧器-连云港振辉机械设备有限公司 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 信阳市建筑勘察设计研究院有限公司| 湿地保护| 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 | 热镀锌槽钢|角钢|工字钢|圆钢|H型钢|扁钢|花纹板-天津千百顺钢铁贸易有限公司 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 北京开源多邦科技发展有限公司官网| 联系我们-腾龙公司上分客服微信19116098882 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | CTAB,表面活性剂1631溴型(十六烷基三甲基溴化铵)-上海升纬化工原料有限公司 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 |