Lua解释器构建 从虚拟机到编译器
全新正版 极速发货
¥
53.77
5.4折
¥
99
全新
库存21件
作者吴尹杰
出版社机械工业出版社
ISBN9787111718833
出版时间2023-01
装帧平装
开本16开
定价99元
货号1202798868
上书时间2024-11-25
商品详情
- 品相描述:全新
- 商品描述
-
目录
序
前言
第1章Lua解释器概述
1.1Lua解释器
1.1.1Lua解释器的整体架构
1.1.2Lua解释器的运行机制
1.2Lua虚拟机
1.2.1虚拟机简介
1.2.2虚拟机指令的编码方式
1.2.3虚拟机指令集
1.3Lua编译器
1.3.1Lua的词法分析器
1.3.2Lua的语法分析器
1.4从0开发一个Lua解释器:dummylua项目
1.4.1项目简介
1.4.2项目架构说明
第2章Lua虚拟机
2.1Lua虚拟机基础知识
2.1.1基本类型定义
2.1.2虚拟机全局状态——global_State
2.1.3虚拟机的线程结构——lua_State
2.1.4虚拟机中执行函数的基础——CallInfo结构
2.1.5C函数在虚拟机线程中的调用流程
2.1.6虚拟机异常处理机制
2.1.7dummylua项目的虚拟机基础实现
2.2为虚拟机添加垃圾回收机制
2.2.1标记清除算法
2.2.2增量式标记清除算法
2.2.3dummylua项目的垃圾回收机制实现
2.3Lua虚拟机的字符串
2.3.1Lua字符串概述
2.3.2Lua字符串结构
2.3.3字符串的哈希运算
2.3.4短字符串与内部化
2.3.5长字符串与惰性哈希
2.3.6Lua-5.2的HashDoS攻击
2.3.7dummylua的字符串实现
2.4Lua虚拟机的表
2.4.1Lua表功能概述
2.4.2Lua表的基本数据结构
2.4.3表的初始化
2.4.4键值的哈希运算
2.4.5查找元素
2.4.6值的更新与插入
2.4.7调整表的大小
2.4.8表遍历
2.4.9dummylua的表实现
第3章Lua脚本的编译与虚拟机指令运行流程
3.1第一个编译并运行脚本的例子:让Lua说“helloworld”
3.2Lua的整体编译和运行流程
3.3虚拟机如何运行编译后的指令
3.4虚拟机输出“helloworld”的例子
3.5反编译工具——protodump
3.5.1protodump工具简介
3.5.2使用protodump反编译Lua的字节码
3.5.3反编译结果分析
3.6标准库加载流程
3.7Lua内置编译器补充说明
3.7.1EBNF简介
3.7.2本章定义的EBNF
3.7.3词法分析器设计与实现
3.7.4语句和表达式
3.7.5语法分析器的基础设计与实现
3.8让dummylua能够编译并运行“helloworld”脚本
第4章Lua编译器
4.1Lua词法分析器
4.1.1词法分析器简介
4.1.2词法分析器基本数据结构
4.1.3词法分析器的接口设计
4.1.4词法分析器的初始化流程
4.1.5token识别流程
4.1.6一个测试用例
4.1.7dummylua的词法分析器实现
4.2Lua语法分析器基础——expr语句编译流程
4.2.1语法分析器的主要工作
4.2.2实现的语法
4.2.3语法分析器基本数据结构
4.2.4编译逻辑与EBNF的关联
4.2.5exprstat的逻辑结构
4.2.6expr的构造与编译
4.2.7suffixedexp构造与编译
4.2.8assignment构造和编译
4.2.9为dummylua添加编译exprstat的功能
4.3完整的Lua语法分析器
4.3.1Lua的语句块
4.3.2local语句编译流程
4.3.3doend语句编译流程
4.3.4if语句编译流程
4.3.5while语句编译流程
4.3.6repeat语句编译流程
4.3.7for语句编译流程
4.3.8break语句编译流程
4.3.9function语句编译流程
4.3.10return语句编译流程
4.3.11dummylua的完整语法分析器实现
第5章Lua解释器的其他基础特性
5.1元表
5.1.1元表简介
5.1.2元表的_index域
5.1.3元表的_newindex域
5.1.4双目运算事件
5.1.5dummylua的元表实现
5.2用户数据
5.2.1用户数据的数据结构
5.2.2用户数据的接口
5.2.3用户数据的垃圾回收处理
5.2.4用户数据的userdomain域内部的堆内存清理
5.2.5用户数据的测试用例
5.2.6dummylua的用户数据实现
5.3上值
5.3.1上值的定义
5.3.2Lua函数的探索
5.3.3上值的生成
5.3.4开放上值和已关闭上值
5.3.5dummylua的上值实现
5.4弱表
5.4.1弱表的定义
5.4.2弱表的用途
5.4.3弱键
5.4.4弱值
5.4.5接近弱引用
5.4.6dummylua的弱表实现
5.5require机制
5.5.1require功能简述
5.5.2package初始化
5.5.3require运作流程
5.5.4dummylua的require机制实现
第6章dummylua开发案例:俄罗斯方块
6.1案例简介
6.2案例代码结构
6.3编译与运行
附录
附录ALua虚拟机指令集
附录BLua的EBNF语法
内容摘要
Lua是一门设计精简、功能强大的脚本语言。本书将Lua解释器拆解,使用C语言,一步一步构建能够正确运行的Lua解释器。本书共6章,分别为Lua解释器概述,Lua虚拟机,Lua脚本的编译与虚拟机指令运行流程,Lua编译器,Lua的解释器的其他基础特征,dummylua开发案例:俄罗斯方块。阅读本书,并不需要读者事先精通有关编译原理的知识,书中会尝试用简洁的语言,向读者介绍相关的具体内容。Lua解释器构建:从虚拟机到编译器面向对Lua内部以及解释器的设计和实现感兴趣的读者,并要求读者对C语言和Lua有一定的了解和使用经验。本书免费提供书中配套案例的全部源码,相关获取方式见封底。
主编推荐
这是一本深入探索Lua解释器内部设计与实现的书,作者专业能力强,有一定的粉丝群体,建议前期所有渠道推广。
— 没有更多了 —
以下为对购买帮助不大的评价