• Lua解释器构建:从虚拟机到编译器
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

Lua解释器构建:从虚拟机到编译器

全新正版未拆封

47.88 4.8折 99 全新

库存2件

四川成都
认证卖家担保交易快速发货售后保障

作者吴尹杰 著

出版社机械工业出版社

出版时间2023-01

版次1

装帧其他

上书时间2023-06-28

转角书檐

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 吴尹杰 著
  • 出版社 机械工业出版社
  • 出版时间 2023-01
  • 版次 1
  • ISBN 9787111718833
  • 定价 99.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
  • 页数 308页
  • 字数 483千字
【内容简介】
Lua是一门设计精简、功能强大的脚本语言。本书将Lua解释器拆解,使用C语言,一步一步构建能够正确运行的Lua解释器。本书共6章,分别为Lua解释器概述,Lua虚拟机,Lua脚本的编译与虚拟机指令运行流程,Lua编译器,Lua的解释器的其他基础特征,dummylua开发案例:俄罗斯方块。阅读本书,并不需要读者事先精通有关编译原理的知识,书中会尝试用简洁的语言,向读者介绍相关的具体内容。
  Lua解释器构建:从虚拟机到编译器面向对Lua内部以及解释器的设计和实现感兴趣的读者,并要求读者对C语言和Lua有一定的了解和使用经验。本书免费提供书中配套案例的全部源码,相关获取方式见封底。
【作者简介】
吴尹杰 网名Manistein,广州某游戏开发有限公司服务端技术总监,热爱计算机技术,喜欢钻研,熟悉多门编程语言,为知名服务端框架skynet贡献过多篇核心源码分析文档。 

个人博客地址:http://manistein.club/ 。
【目录】


前言

第1章 Lua解释器概述/

1.1 Lua解释器/

1.1.1 Lua解释器的整体架构/

1.1.2 Lua解释器的运行机制/

1.2 Lua虚拟机/

1.2.1 虚拟机简介/

1.2.2 虚拟机指令的编码方式/

1.2.3 虚拟机指令集/

1.3 Lua编译器/

1.3.1 Lua的词法分析器/

1.3.2 Lua的语法分析器/

1.4 从0开发一个Lua解释器:dummylua项目/

1.4.1 项目简介/

1.4.2 项目架构说明/

第2章 Lua虚拟机/

2.1 Lua虚拟机基础知识/

2.1.1 基本类型定义/

2.1.2 虚拟机全局状态——global_State/

2.1.3 虚拟机的线程结构——lua_State/

2.1.4 虚拟机中执行函数的基础——CallInfo结构/

2.1.5 C函数在虚拟机线程中的调用流程/

2.1.6 虚拟机异常处理机制/

2.1.7 dummylua项目的虚拟机基础实现/

2.2 为虚拟机添加垃圾回收机制/

2.2.1 标记清除算法/

2.2.2 增量式标记清除算法/

2.2.3 dummylua项目的垃圾回收机制实现/

2.3 Lua虚拟机的字符串/

2.3.1 Lua字符串概述/

2.3.2 Lua字符串结构/

2.3.3 字符串的哈希运算/

2.3.4 短字符串与内部化/

2.3.5 长字符串与惰性哈希/

2.3.6 Lua-5.2的Hash DoS攻击/

2.3.7 dummylua的字符串实现/

2.4 Lua虚拟机的表/

2.4.1 Lua表功能概述/

2.4.2 Lua表的基本数据结构/

2.4.3 表的初始化/

2.4.4 键值的哈希运算/

2.4.5 查找元素/

2.4.6 值的更新与插入/

2.4.7 调整表的大小/

2.4.8 表遍历/

2.4.9 dummylua的表实现/

第3章 Lua脚本的编译与虚拟机指令运行流程 /

3.1 第一个编译并运行脚本的例子:让Lua说“hello world”/

3.2 Lua的整体编译和运行流程/

3.3 虚拟机如何运行编译后的指令/

3.4 虚拟机输出“hello world”的例子/

3.5 反编译工具——protodump/

3.5.1 protodump工具简介/

3.5.2 使用protodump反编译Lua的字节码/

3.5.3 反编译结果分析/

3.6 标准库加载流程/

3.7 Lua内置编译器补充说明/

3.7.1 EBNF简介/

3.7.2 本章定义的EBNF/

3.7.3 词法分析器设计与实现/

3.7.4 语句和表达式/

3.7.5 语法分析器的基础设计与实现/

3.8 让dummylua能够编译并运行“hello world”脚本/

第4章 Lua编译器/

4.1 Lua词法分析器 /

4.1.1 词法分析器简介/

4.1.2 词法分析器基本数据结构/

4.1.3 词法分析器的接口设计/

4.1.4 词法分析器的初始化流程/

4.1.5 token识别流程/

4.1.6 一个测试用例/

4.1.7 dummylua的词法分析器实现/

4.2 Lua语法分析器基础——expr语句编译流程/

4.2.1 语法分析器的主要工作/

4.2.2 实现的语法/

4.2.3 语法分析器基本数据结构/

4.2.4 编译逻辑与EBNF的关联/

4.2.5 exprstat的逻辑结构/

4.2.6 expr的构造与编译/

4.2.7 suffixedexp构造与编译/

4.2.8 assignment构造和编译/

4.2.9 为dummylua添加编译exprstat的功能/

4.3 完整的Lua语法分析器/

4.3.1 Lua的语句块/

4.3.2 local语句编译流程/

4.3.3 doend语句编译流程/

4.3.4 if语句编译流程/

4.3.5 while语句编译流程/

4.3.6 repeat语句编译流程/

4.3.7 for语句编译流程/

4.3.8 break语句编译流程/

4.3.9 function语句编译流程/

4.3.10 return语句编译流程 /

4.3.11 dummylua的完整语法分析器实现/

第5章 Lua解释器的其他基础特性/

5.1 元表/

5.1.1 元表简介/

5.1.2 元表的_index域/

5.1.3 元表的_newindex域/

5.1.4 双目运算事件/

5.1.5 dummylua的元表实现/

5.2 用户数据/

5.2.1 用户数据的数据结构/

5.2.2 用户数据的接口/

5.2.3 用户数据的垃圾回收处理/

5.2.4 用户数据的user domain域内部的堆内存清理/

5.2.5 用户数据的测试用例/

5.2.6 dummylua的用户数据实现/

5.3 上值/

5.3.1 上值的定义/

5.3.2 Lua函数的探索/

5.3.3 上值的生成/

5.3.4 开放上值和已关闭上值/

5.3.5 dummylua的上值实现/

5.4 弱表 /

5.4.1 弱表的定义/

5.4.2 弱表的用途/

5.4.3 弱键/

5.4.4 弱值/

5.4.5 完全弱引用/

5.4.6 dummylua的弱表实现/

5.5 require机制 /

5.5.1 require功能简述/

5.5.2 package初始化/

5.5.3 require运作流程/

5.5.4 dummylua的require机制实现/

第6章 dummylua开发案例:俄罗斯方块/

6.1 案例简介/

6.2 案例代码结构/

6.3 编译与运行/

附录/

附录A Lua虚拟机指令集/

附录B Lua的EBNF语法/
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP