请选择 进入手机版 | 继续访问电脑版
java自学网VIP

Java自学网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Java自学网公众号

Java自学网

Java自学网

QQ客服1

QQ客服2

查看: 160|回复: 8

[java电子书] 自己动手实现Lua:虚拟机、编译器和标准库 PDF 电子书 自学网

[复制链接]
  • TA的每日心情
    开心
    19 小时前
  • 签到天数: 1571 天

    [LV.Master]出神入化

    1698

    主题

    3089

    帖子

    5万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    50500

    宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-10-25 00:58:16 | 显示全部楼层 |阅读模式
    java自学网(www.javazx.com)-java论坛,java电子书推荐:《自己动手实现Lua:虚拟机、编译器和标准库》
    java电子书推荐理由:本书是一本面向Lua程序员和脚本语言爱好者的语言自制指南和实战宝典。作者融合自己丰富的工程实践经验,详细阐述Lua语言的核心语法和实现原理,深入探讨Lua虚拟机、编译器和标准库,并给出了实际可以编译执行的代码。助你从零基础开始编程实现Lua语言,彻底理解脚本语言工作原理。全书分为3个部分,共21章。*部分主要讨论LuaAPI和虚拟机实现,包括二进制chunk格式、Lua虚拟机指令集、元编程、错误处理等。第二部分主要讨论Lua语法和编译器实现,包括词法分析、语法分析、代码优化、代码生成等。第三部分主要讨论Lua辅助API和标准库实现,包括基础库、实用工具库、包和模块、协程等。

    作者:张秀宏
    出版社:机械
    工业出版社
    出版时间:2018年10月
    书籍价格:89.00元


    1111.jpg

    java电子书目录:本书为epub 可以在百度中在线看 2222.jpg
    第一部分 准备
    第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


    Java资料百度网盘下载地址链接(百度云):自己动手实现Lua:虚拟机、编译器和标准库.pdf【密码回帖可见】
    游客,如果您要查看本帖隐藏内容请->>回复







    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-1-6 11:26
  • 签到天数: 25 天

    [LV.4]略有小成

    0

    主题

    140

    帖子

    712

    积分

    普通会员

    Rank: 2

    积分
    712
    发表于 2019-10-25 19:12:14 | 显示全部楼层
    eeeeeeeeeeeeeeeeeeeeeee
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-11 10:29
  • 签到天数: 288 天

    [LV.8]已臻大成

    0

    主题

    414

    帖子

    4758

    积分

    普通会员

    Rank: 2

    积分
    4758
    发表于 2019-10-25 19:40:36 | 显示全部楼层
    今天签到了吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-2-1 14:53
  • 签到天数: 2 天

    [LV.1]初学乍练

    0

    主题

    6

    帖子

    52

    积分

    普通会员

    Rank: 2

    积分
    52
    发表于 2019-11-16 14:32:30 | 显示全部楼层
    谢谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-12-1 11:56
  • 签到天数: 1 天

    [LV.1]初学乍练

    0

    主题

    20

    帖子

    60

    积分

    普通会员

    Rank: 2

    积分
    60
    发表于 2019-12-1 14:48:19 | 显示全部楼层
    lua的一个实现
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    10 小时前
  • 签到天数: 163 天

    [LV.7]自成一派

    0

    主题

    302

    帖子

    30万

    积分

    终身VIP

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    积分
    303385
    发表于 2019-12-16 09:04:10 | 显示全部楼层
    谢谢楼主,学习学习。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    46

    帖子

    94

    积分

    普通会员

    Rank: 2

    积分
    94
    发表于 2020-1-22 23:48:46 | 显示全部楼层
    66666666666
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    51

    帖子

    104

    积分

    普通会员

    Rank: 2

    积分
    104
    发表于 2020-2-11 06:35:41 | 显示全部楼层
    像看看 内容
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    52

    帖子

    106

    积分

    普通会员

    Rank: 2

    积分
    106
    发表于 5 天前 | 显示全部楼层
    不错哟 谢谢楼主
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Java自学网 ( 京ICP备12001332号

    Powered by Javazx

    © 2018-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表