自己动手实现Lua:虚拟机、编译器和标准库
上QQ阅读APP看书,第一时间看更新

本书主要内容

本书主要内容可以分为四个部分:第一部分(第1章)为准备工作;第二部分(第2~13章)主要讨论Lua虚拟机和Lua API;第三部分(第14~17章)主要讨论Lua语法和编译器,第四部分(第18~21章)主要讨论Lua标准库。

全书共21章,各章内容安排如下:

❑ 第一部分(准备)

● 第1章:准备工作。

准备编程环境,编写“Hello, World! ”程序。

❑ 第二部分(Lua虚拟机和Lua API)

● 第2章:二进制chunk。

介绍Lua二进制chuck文件格式,编写代码解析二进制chunk文件。

● 第3章:指令集

介绍Lua虚拟机指令集和指令编码格式,编写代码对指令进行解码。

● 第4章:Lua API

初步介绍Lua API和Lua State,实现栈相关API方法。

● 第5章:Lua运算符

介绍Lua语言运算符,给Lua API添加运算符相关方法。

● 第6章:虚拟机雏形

初步实现Lua虚拟机,可以解释执行大约一半的Lua虚拟机指令。

● 第7章:表

介绍并实现Lua表、表相关API方法,以及表相关指令。

● 第8章:函数调用

介绍并实现Lua函数调用。

● 第9章:Go函数调用

介绍如何在Lua中调用Go语言函数。

● 第10章:闭包和Upvalue

介绍并实现闭包和Upvalue,以及Upvalue相关指令。

● 第11章:元编程

介绍并实现Lua元表、元方法及元编程。

● 第12章:迭代器

介绍并实现Lua迭代器。

● 第13章:异常和错误处理

介绍Lua异常和错误处理机制。

❑ 第三部分(Lua语法和编译器)

● 第14章:词法分析

介绍Lua语言词法规则,实现词法分析器。

● 第15章:抽象语法树

初步介绍Lua语言语法规则,定义抽象语法树。

● 第16章:语法分析

进一步介绍Lua语言语法规则,编写语法分析器。

● 第17章:代码生成

编写代码生成器。

❑ 第四部分(Lua标准库)

● 第18章:辅助API和基础库

介绍Lua辅助API和标准库,实现基础库。

● 第19章:工具库

介绍并实现数学、表、字符串、UTF-8、OS等标准库。

● 第20章:包和模块

介绍Lua包和模块机制,实现package标准库。

● 第21章:协程

介绍Lua协程,实现coroutine标准库。