超过460,000+ 应用技术资源下载
pdf

Lua设计与实现.pdf

  • 1星
  • 日期: 2018-05-31
  • 大小: 127.12MB
  • 所需积分:2分
  • 下载次数:46
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: lua

一本揭示Lua实现原理的图书

经典的纯C语言项目分析

一线开发人员倾力打造

Lua是一种可嵌入、轻量、快速、功能强大的脚本语言,使用较为广泛,主要用在游戏领域。另外,基于Nginx的OpenResty也是使用Lua来编写脚本的,很多服务器(如Redis)也支持使用Lua来编写脚本。

作为一门诞生已经超过20年的语言,它在设计上是非常克制的。以Lua 5.1.4版本来说,其解释器加上周边的库函数等也就不过一万多行的代码量,而如果再进行精简,只需要吃透核心的几千行代码就可以了。

另外,作为一门以纯C代码编写的项目,Lua代码优美、结构组织紧凑,是教科书般经典的C语言项目。

本书讨论了Lua的设计原理,首先讲解了数据结构、字符串以及表类型的实现原理,接着讨论了虚拟机的实现,讨论了垃圾回收、模块实现、热更新、协程等的实现原理。

本书适用于以下读者:

● 希望能够进一步了解Lua内部实现原理的用户;

● 对程序语言设计感兴趣的读者。

内容简介

   书籍

   计算机书籍

本书基于Lua 5.1.4版本讨论了Lua语言的设计原理,全书共分三部分:前部分讲解数据结构(如通用数据是如何表示的)、字符串以及表类型的实现原理;中间部分是本书重要的部分,主要讨论了虚拟机的实现;第三部分讨论了垃圾回收、模块实现、热更新、协程等的实现原理。 

作译者

网名codedump,长期从事互联网后端服务开发工作。曾经在网易等公司从事游戏服务器后台开发,在网络游戏开发工作期间接触到使用C++编写服务核心引擎和使用Lua脚本编写游戏逻辑的技术组合后,对Lua产生了浓厚的兴趣,遂开始研究其实现原理,陆续公布于网络。个人博客:www.codedump.info。 

文档内容节选

作者简介 网名 codedump ,长期从事 E联网后端服务开发工作 曾经在网易等公司从事游戏 服务器后台开发,在网络游 戏开发工作期间接触到使用 C编写服务核心引擎和使 用 Lua脚本编写游戏逻辑的 技术组合后,对L旧产生了浓 厚的安罐,遂开始研究真实现 原理,陆提兰布于网络个人 博害: WWWxledumpinfo zi h F 尴 n 引 6 a 唰 刨 口 l i E 十 叫 v 谊 , 封 , 面 2 回国圄要原刨 codedump O 著 人民邮电出版社 北京 图书在版编目 C I P 数据 Lua设计与实现 李创著一北京:人民邮电出版 社, 20178 图灵原创 ISBN 9787 115 46537 5 I L II 李 ill 游戏程序一程序设计 N TP3176 中国版本图书馆CIP数据核宇2017第 185067号 内容提要 本书基于 Lua 514 版本讨论了 Lua 语言的设计原理,全书共分三部分:第一部分讲解数据结构如 通用数据是如何表示的字符串以及表类型的实现原理第二部分是本书最重要的部分,主要讨论了虚 拟机的实现:第三部分......

作者简介 网名 codedump ,长期从事 E联网后端服务开发工作。 曾经在网易等公司从事游戏 服务器后台开发,在网络游 戏开发工作期间接触到使用 C++编写服务核心引擎和使 用 Lua脚本编写游戏逻辑的 技术组合后,对L旧产生了浓 厚的安罐,遂开始研究真实现 原理,陆提兰布于网络。个人 博害: WWW.αxledump.info。 .. -z’··i h F 尴 -n 引 6 a 唰 刨 口 』 l i E 十 叫 - - v 谊 。 , ‘ 封 。 . , 面 2 回国圄要原刨 codedump O 著 人民邮电出版社 北京 图书在版编目 ( C I P )数据 Lua设计与实现 / 李创著.一北京:人民邮电出版 社, 2017.8 (图灵原创〉 ISBN 978-7- 115- 46537- 5 I. ①L… II. ①李… ill. ①游戏程序一程序设计 N ( TP317.6 中国版本图书馆CIP数据核宇(2017)第 185067号 内容提要 本书基于 Lua 5.1.4 版本讨论了 Lua 语言的设计原理,全书共分三部分:第一部分讲解数据结构(如 通用数据是如何表示的)、字符串以及表类型的实现原理;第二部分是本书最重要的部分,主要讨论了虚 拟机的实现:第三部分讨论了垃圾回收、模块实现、热更新、协程等的实现原理 。 本书适合对 Lua 内部实现感兴趣以及对编程语言实现原理感兴趣的人阅读 。 ’ 著 codedump 责任编辑王军花 责任印制彭志环 , 人民邮电出版社出版发行 北京市丰台区成寿寺路 l l 号 邮编 1001 64 电子邮件 3 l 5@ptpress.com.cn 网址 http :/.八www.ptpress .com.cn 北京鑫正大印刷有限公司印刷 ’ 开本: 800 × 1000 1/16 印张: 12.25 字数: 290千字 印数: l - 3 000册 2017年 8 月第 l 版 2017年 8 月北京第 l 次印刷 定价: 49.00元 读者服务热线 : (010)51095186转600 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广登字 20170147 号 ,, 刚吕 接触 Lua 是在很早之前,但是那时仅限于基本的学习,没有在项目中使用,也没有意识到这 门语育真正的魅力 。 时间来到 2011 年,那时我在从事网页游戏的开发工作 。 游戏开发有其独有的特点一一上线 周期短,经常一两周就要有一个版本上线,而这个过程中需要实现的功能并不见得少 。 简单地说, 就是时间紧、任务重。 假如采用 C++这样的编译型语言来开发游戏,那么典型的开发流程大致是这样的:擂起袖子 来写了一大段代码,然后编译 、 解决调试编译的错误,中间可能还要处理类似崩溃、段错误、内 存泄露等问题。 另外,由于重新编译了代码,又需要重启服务器 ,而重启过程中势必涉及数据的 加载。 总而育之,采用纯编译型语言开发的情况下,相当一部分时间并没有用在真正的业务逻辑 开发中 。 当时项目采用的是 C++编写的核心引擎模块,暴露核心接口给 Lua 脚本层,网络数据的收发 等都在 C++层完成,而业务逻辑采用 Lua 实现。 这个架构也是很多游戏服务器采用的经典架构 。 使用这个架构来开发游戏服务时,不再会把大量的精力放在语言本身的问题上,而可以集中精力 来做业务逻辑 。 另外,借助于 Lua 的热更新能力,整个开发过程中需要重启服务的次数并不多 。 可以说,这个项目经历打开了一扇新的窗口,开阔了我的视野。 由于在项目开发过程中尝到 了甜头,井且自己也对编程语育的实现很感兴趣,所以业余时间就开始慢慢阅读 Lua 解释器的实 现原理。 那时候在互联网上能找到的分析 Lua 实现的文章并不多,加上自己编译原理等相关知识 的基础薄弱,大部分时候只能硬啃代码。 我一边摸索,一边开始逐步整理相关的文章并将其放在 网上,希望对其他有类似需求的朋友有一些帮助 。 Lua 作为一 门诞生已经超过 20 年的语言,在设计上是非常克制的 。 以本书讲解所涉及的 Lua 5.1.4 版本来说,这个版本是 Lua 发展了十几年之后稳定了很长时间的版本,其解释器加上周边 的库雨数等不过就是一万多行的代码量,而如果再进行精简,只需要吃透最核心的几千行代码就 可以了 。 这样一 门广泛使用的工业级别的脚本语言,只需要吃透几千行代码就能明白其核心原理, 这个性价比极高的诱惑对当时的我来说无疑是巨大的 。 Lua 在设计上,从一开始就把简洁、高效、可移植性、可嵌入型、可扩展性等作为自己的目
更多简介内容

推荐帖子

【Lua】中文教程
其实每次干这种事我心里都很大压力....... Lua和FreeRTOS有点像,卖书都是一种支持作者和社区的行为,然而,然而,这份翻译,是 lua中文社区一个家伙,据说已经和原作者得到了许可,可以发布翻译。 然而我又把这份资料上传到这里,还好,我没修改过pdf的水印,也说了这来自 lua中文社区。 不过,lua方面的书我还没买。 在京东上看了一圈,目前感觉,纯粹lua的书不多,就一本 Lu
辛昕 嵌入式系统编程
制作自己的wifi开关 esp8266 lua开发
本帖最后由 克隆大师 于 2018-11-8 20:13 编辑 先看下esp8266-12f控制原理图 先上传一下用到的工具: 安卓版手机网络调试助手:    esp8266 lua开发使用的固件: esp8266  wifi开关lua源码:    esp8266 lua开发工具:  https://pan.baidu.com/s/14ZMpgeWlZpiAET5ZjL3X9
克隆大师 DIY/开源硬件专区
helper2416_tftp测试_传输lua脚本到板子上
本帖最后由 lyzhangxiang 于 2014-9-4 23:03 编辑 好了,这篇帖子算是个前奏贴吧,自带的tftp客户端还是很好用的,也算是个教学贴吧,大家可以自己在他的基础上开发出好玩的东西。文件系统都是我不太熟悉的,fatfs还算熟悉吧能写一些测试代码,关键是我的sd卡里面有资料所以就先不折腾他了,我平时主要用hcc的文件系统。 恩说说我想干嘛吧,之前已经为板子移植了lua虚拟机
lyzhangxiang 嵌入式系统编程
stm32f429_discovery + lua等等
本帖最后由 jorya_txj 于 2014-9-15 14:34 编辑 基于raw-os的stm32f429_discover已经就绪,目前具备的功能有ymodem , fatfs, lua 等等。由electron 维护。 下载的地址: http://www.raw-os.org/Download.html   搜寻stm32f429  git 的地址为:https://github.
jorya_txj 嵌入式系统编程
helper2416_rawos_lua组件移植ok_欢迎测试
之前有一些关于裸机的帖子,主要是用ucosii,有一些相关的移植和小结,得益于一些瞎折腾,才有了这篇在rawos上的组件移植的帖子。lua相关的我就不做介绍了可以参考我前面的帖子(第一篇帖子主要是介绍和其他平台移植相关,第二篇主要在5、6楼中有初步移植问题讨论)。 helper2416_lua5.2移植_效率测试 helper2416_rawos_ping测试 我从rawos的git中for
lyzhangxiang 嵌入式系统编程
helper2416_lua5.2移植_效率测试
好吧,这几天卡壳了,没什么进展,主要是ucos移植不稳定,问题多多,后面很多无法继续,lwip也不稳定,主要是ucos的问题吧。后面有时间在继续吧,先发点别的。目前是在这个不完善的ucos上面跑的,后面我会搞到raw-os上面去,比较简单的,不太复杂,玩玩很不错的。 给大家一点关于lua的参考网站,不了解的可以了解下,效率比较高的虚拟机,脚本语言,虚拟机也比较有特色,寄存器虚拟机/堆栈虚拟机两个
lyzhangxiang 嵌入式系统编程

评论


个人中心

意见反馈

求资源

回顶部

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人电子

搜索下次设计所需的
TI 器件

● 目前在售器件有45,000款
● 6.99美元标准运费,不受时间和地点限制
● 无最低起订量要求

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

EEWorld电子技术资料下载——分享有价值的资料

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })