网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 Lua解释器构建(从虚拟机到编译器)/计算机前沿技术丛书
分类 计算机-软件工程
作者 吴尹杰
出版社 机械工业出版社
下载
简介
内容推荐
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语法
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/3/15 7:14:05