自己动手实现Lua:虚拟机、编译器和标准库 - (EPUB全文下载)
文件大小:0.83 mb。
文件格式:epub 格式。
书籍内容:
自己动手实现Lua:虚拟机、编译器和标准库
第1章 准备工作
1.1 准备开发环境
1.1.1 操作系统
1.1.2 安装Lua
1.1.3 安装Go
1.2 准备目录结构
1.3 本章小结
第二部分 Lua虚拟机和Lua API
第2章 二进制chunk
2.1 什么是二进制chunk
2.2 luac命令介绍
2.2.1 编译Lua源文件
2.2.2 查看二进制chunk
2.3 二进制chunk格式
2.3.1 数据类型
2.3.2 总体结构
2.3.3 头部
2.3.4 函数原型
2.4 解析二进制chunk
2.4.1 读取基本数据类型
2.4.2 检查头部
2.4.3 读取函数原型
2.5 测试本章代码
2.6 本章小结
第3章 指令集
3.1 指令集介绍
3.2 指令编码格式
3.2.1 编码模式
3.2.2 操作码
3.2.3 操作数
3.2.4 指令表
3.3 指令解码
3.4 测试本章代码
3.5 本章小结
第4章 Lua API
4.1 Lua API介绍
4.2 Lua栈
4.2.1 Lua数据类型和值
4.2.2 栈索引
4.2.3 定义luaStack结构体
4.3 Lua State
4.3.1 定义LuaState接口
4.3.2 定义luaState结构体
4.3.3 基础栈操纵方法
4.3.4 Push方法
4.3.5 Access方法
4.4 测试本章代码
4.5 本章小结
第5章 Lua运算符
5.1 Lua运算符介绍
5.2 自动类型转换
5.3 扩展LuaState接口
5.3.1 Arith()方法
5.3.2 Compare()方法
5.3.3 Len()方法
5.3.4 Concat()方法
5.4 测试本章代码
5.5 本章小结
第6章 虚拟机雏形
6.1 添加LuaVM接口
6.1.1 定义LuaVM接口
6.1.2 改造luaState结构体
6.1.3 实现LuaVM接口
6.2 实现Lua虚拟机指令
6.2.1 移动和跳转指令
6.2.2 加载指令
6.2.3 算术运算指令
6.2.4 长度和拼接指令
6.2.5 比较指令
6.2.6 逻辑运算指令
6.2.7 for循环指令
6.3 指令分派
6.4 测试本章代码
6.5 本章小结
第7章 表
7.1 表介绍
7.2 表内部实现
7.3 表相关API
7.3.1 Get方法
7.3.2 Set方法
7.4 表相关指令
7.4.1 NEWTABLE
7.4.2 GETTABLE
7.4.3 SETTABLE
7.4.4 SETLIST
7.5 测试本章代码
7.6 本章小结
第8章 函数调用
8.1 函数调用介绍
8.2 函数调用栈
8.2.1 调用帧实现
8.2.2 调用栈实现
8.3 函数调用API
8.3.1 Load()
8.3.2 Call()
8.4 函数调用指令
8.4.1 CLOSURE
8.4.2 CALL
8.4.3 RETURN
8.4.4 VARARG
8.4.5 TAILCALL
8.4.6 SELF
8.4.7 扩展LuaVM接口
8.4.8 改进SETLIST指令
8.5 测试本章代码
8.6 本章小结
第9章 Go函数调用
9.1 Go函数登场
9.1.1 添加Go函数类型
9.1.2 扩展Lua API
9.1.3 调用Go函数
9.2 Lua注册表
9.2.1 添加注册表
9.2.2 操作注册表
9.3 全局环境
9.3.1 使用API操作全局环境
9.3.2 在Lua里访问全局环境
9.4 测试本章代码
9.5 本章小结
第10章 闭包和Upvalue
10.1 闭包和Upvalue介绍
10.1.1 背景知识
10.1.2 Upvalue介绍
10.1.3 全局变量
10.2 Upvalue底层支持
10.2.1 修改closure结构体
10.2.2 Lua闭包支持
10.2.3 Go闭包支持
10.3 Upvalue相关指令
10.3.1 GETUPVAL
10.3.2 SETUPVAL
10.3.3 GETTABUP
10.3.4 SETTABUP
10.3.5 JMP
10.4 测试本章代码
10.5 本章小结
第11章 元编程
11.1 元表和元方法介绍
11.1.1 元表
11.1.2 元方法
11.2 支持元表
11.3 调用元方法
11.3.1 算术元方法
11.3.2 长度元方法
11.3.3 拼接元方法
11.3.4 比较元方法
11.3.5 索引元方法
11.3.6 函数调用元方法
11.4 扩展Lua API
11.4.1 GetMetatable()
11.4.2 SetMetatable()
11.5 测试本章代码
11.6 本章小结
第12章 迭代器
12.1 迭代器介绍
12.2 next()函数
12.2.1 修改luaTable结构体
12.2.2 扩展Lua API
12.2.3 实现next()函数
12.3 通用for循环指令
12.4 测试本章代码
12.5 本章小结
第13章 异常和错误处理
13.1 异常和错误处理介绍
13.2 异常和错误处理API
13.2.1 Error()
13.2.2 PCall()
13.3 error()和pcall()函数
13.4 测试本章代码
13.5 本章小结
第三部分 Lua语法和编译器
第14章 词法分析
14.1 编译器介绍
14.2 Lua词法介绍
14.3 实现词法分析器
14.3.1 定义Token类型
14.3.2 空白字符
14.3.3 注释
14.3.4 分隔符和运算符
14.3.5 长字符串字面量
14.3.6 短字符串字面量
14.3.7 数字字面量
14.3.8 标识符和关键字
14.4 LookAhead()和其他方法
14.5 测试本章代码
14.6 本章小结
第15章 抽象语法树
15.1 抽象语法树介绍
15.2 Chunk和块
15.3 语句 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 自己动手实现Lua:虚拟机、编译器和标准库 - (EPUB全文下载)