自己动手实现Lua:虚拟机、编译器和标准库

自己动手实现Lua:虚拟机、编译器和标准库

作者:张秀宏

出版社:机械工业

出版年:2018年10月

ISBN:9787111610229

所属分类:青春文学

书刊介绍

《自己动手实现Lua:虚拟机、编译器和标准库》内容简介

本书是一本面向Lua程序员和脚本语言爱好者的语言自制指南和实战宝典。全书将带给读者3个维度的收获:维度1:深入理解Lua语言本身作者融合自己丰富的工程实践经验,详细阐述了Lua语言的核心语法和实现原理,深入探讨了Lua虚拟机、编译器和标准库的实现,并给出了实际可以编译执行的代码。维度2:从零开始实现一门脚本语言本书以Lua语言为例,系统、完整地(涵盖虚拟机、编译器和标准库)讲解了如何零基础编写一门脚本语言,帮助读者彻底理解脚本语言的工作原理。维度3:提升Go和Java语言编程能力本书分别用Go语言和Java语言来实现Lua,包含大量对Go和Java的使用,有很多巧妙的设计,能帮助读者提升Go和Java的编程能力。全书共21章,分为3个部分:第一部分(第1-13章)主要讲解LuaAPI和虚拟机的实现,包括二进制chunk格式、Lua虚拟机指令集、元编程、错误处理等。第二部分(第14-17章)主要讨论Lua语法和编译器的实现,包括词法分析、语法分析、代码优化、代码生成等。第三部分(第18-21章)主要讲解Lua辅助API和标准库实现,包括基础库、实用工具库、包和模块、协程等。
张秀宏著。

作品目录

前言
第一部分
准备
第1章:准备工作
1.1、准备开发环境
1.2、准备目录结构
1.3、本章小结
第二部分
Lua虚拟机和Lua
API
第2章:二进制chunk
2.1、什么是二进制chunk
2.2、luac命令介绍
2.3、二进制chunk格式
2.4、解析二进制chunk
2.5、测试本章代码
2.6、本章小结
第3章:指令集
3.1、指令集介绍
3.2、指令编码格式
3.3、指令解码
3.4、测试本章代码
3.5、本章小结
第4章:Lua
API
4.1、Lua
API介绍
4.2、Lua栈
4.3、Lua
State
4.4、测试本章代码
4.5、本章小结
第5章:Lua运算符
5.1、Lua运算符介绍
5.2、自动类型转换
5.3、扩展LuaState接口
5.4、测试本章代码
5.5、本章小结
第6章:虚拟机雏形
6.1、添加LuaVM接口
6.2、实现Lua虚拟机指令
6.3、指令分派
6.4、测试本章代码
6.5、本章小结
第7章:表
7.1、表介绍
7.2、表内部实现
7.3、表相关API
7.4、表相关指令
7.5、测试本章代码
7.6、本章小结
第8章:函数调用
8.1、函数调用介绍
8.2、函数调用栈
8.3、函数调用API
8.4、函数调用指令
8.5、测试本章代码
8.6、本章小结
第9章:Go函数调用
9.1、Go函数登场
9.2、Lua注册表
9.3、全局环境
9.4、测试本章代码
9.5、本章小结
第10章:闭包和Upvalue
10.1、闭包和Upvalue介绍
10.2、Upvalue底层支持
10.3、Upvalue相关指令
10.4、测试本章代码
10.5、本章小结
第11章:元编程
11.1、元表和元方法介绍
11.2、支持元表
11.3、调用元方法
11.4、扩展Lua
API
11.5、测试本章代码
11.6、本章小结
第12章:迭代器
12.1、迭代器介绍
12.2、next()函数
12.3、通用for循环指令
12.4、测试本章代码
12.5、本章小结
第13章:异常和错误处理
13.1、异常和错误处理介绍
13.2、异常和错误处理API
13.3、error()和pcall()函数
13.4、测试本章代码
13.5、本章小结
第三部分
Lua语法和编译器
第14章:词法分析
14.1、编译器介绍
14.2、Lua词法介绍
14.3、实现词法分析器
14.4、LookAhead()和其他方法
14.5、测试本章代码
14.6、本章小结
第15章:抽象语法树
15.1、抽象语法树介绍
15.2、Chunk和块
15.3、语句
15.4、表达式
15.5、本章小结
第16章:语法分析
16.1、语法分析介绍
16.2、解析块
16.3、解析语句
16.4、解析表达式
16.5、测试本章代码
16.6、本章小结
第17章:代码生成
17.1、定义funcInfo结构体
17.2、编译块
17.3、编译语句
17.4、编译表达式
17.5、生成函数原型
17.6、使用编译器
17.7、测试本章代码
17.8、本章小结
第四部分
Lua标准库
第18章:辅助API和基础库
18.1、Lua标准库介绍
18.2、辅助API
18.3、基础库
18.4、测试本章代码
18.5、本章小结
第19章:工具库
19.1、数学库
19.2、表库
19.3、字符串库
19.4、UTF-8库
19.5、OS库
19.6、本章小结
第20章:包和模块
20.1、包和模块介绍
20.2、实现包库
20.3、测试本章代码
20.4、本章小结
第21章:协程
21.1、协程介绍
21.2、协程API
21.3、实现协程库
21.4、测试本章代码
21.5、本章小结
附录A
Lua虚拟机指令集
附录B
Lua语法EBNF描述
后记

相关推荐

微信二维码