Lua设计与实现电子书PDF下载附源代码|百度网盘下载
编辑评论:
Lua设计与实现 基于Lua 5.1.4,讨论了Lua语言的设计原则。全书分为三部分:第一部分讲解数据结构(如一般数据是如何表示的)、字符、字符串和表类型的实现原理;中间部分是本书的重要部分,主要讨论虚拟机的实现;第三部分讨论垃圾回收、模块实现、热更新、协程等的实现原理。
编辑推荐
一本揭示 Lua 实现原理的书
经典纯C语言项目分析
一线开发者努力创造
Lua 是一种可嵌入、轻量级、快速且功能强大的脚本语言,应用广泛,主要用于游戏。此外,基于 Nginx 的 OpenResty 也使用 Lua 编写脚本,很多服务器(如 Redis)也支持使用 Lua 编写脚本。
作为一种已经存在了 20 多年的语言,它在设计上非常克制。对于Lua5.1.4版本,它的解释器加上周边的库函数只有一万多行代码,如果进一步简化,只需要理解几千行代码的核心即可。
另外,作为纯C代码编写的项目,Lua代码优美,结构紧凑。它是一个经典的 C 语言项目,就像教科书一样。
这本书讨论了 Lua 的设计原则。首先讲解数据结构、字符串、表类型的实现原理,然后讨论虚拟机的实现,并讨论垃圾回收、模块实现、热更新、协程等实现原理。
本书适用于以下读者:
想了解更多Lua内部实现的用户;
对编程语言设计感兴趣的读者。
关于作者
网名codeump,长期从事互联网后端服务开发。曾在网易等公司从事游戏服务器后端开发。在网游开发过程中,接触到使用C++编写服务核心引擎和使用Lua脚本编写游戏逻辑的技术组合后,对Lua产生了浓厚的兴趣,开始研究其实现。该原理先后在网上公布。个人博客:www.codedump.info。
要阅读本书,读者至少需要具备以下基本知识
扎实的C语言功底,Lua虚拟机是纯C语言编写的。在我见过的纯C语言做的项目中,Lua虚拟机的代码质量是最高的。
一定的编译原理知识,比如了解词法分析、语法分析、递归下降分析、BNF规则等。如果不了解这些原理,在阅读Lua虚拟机的实现时会遇到很多问题。
本书组织如下
第一部分讲解Lua中的数据结构,比如一般数据是如何表示的,Lua字符串和表类型的实现原理。
第二部分是全书最重要的部分,主要讨论Lua虚拟机的实现。另外,这里对Lua虚拟机中的一些关键指令进行分类。
第三部分的内容比较复杂。本部分讨论垃圾回收、模块实现、热更新、协程的实现原理。