• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

当我读《自己动手实现Lua:虚拟机、编译器和标准库》时我在想什么Windows快捷安装LuaW ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

写在前面

  • 这本书长这样

  

  • 这本书用Go语言实现Lua(包括虚拟机、编译器和标准库)。
  • 本书的章节设计是我看过的专业书中设计最用心的,共21章,每章在前一章的基础上实现一个内容;平均下来每章的页数差不多,如果时间充分,一天读完一章(包括写代码)也是可以做到的。
  • 本书的写作方式仍然是我喜欢的“谈话口吻”,非常详细,非常体贴我一个开头并不了解“虚拟机是什么”种种问号的人。
  • 我认为它可以归到“能顺顺利利读下来的专业书”一类。

一些准备

  • 心理准备:在下定决心读完这本书前,我翻了翻前言,感觉是“要读此书,先需要会Go语言,需要了解编译原理”,但我不会Go,也不会编译原理,如果真想读完这本书,感觉要花很多时间先去学Go和编译原理!Go倒还好说,我学到能基本看懂Go代码的程度就差不多了,这个花不了多久,但让我先弄懂编译原理实在有难度,而且我再一搜《编译原理》,真是好厚一砖头书!这会不会和我“实现Lua”的目标南辕北辙呢?“到底要不要读完这本书”,做这个心理准备真的做了很久,最后下的决定是先读起来,Go和编译原理它要用到的时候再去另外看。结果我发现读起来的时候,Go语言我是推迟到第2章一半内容读过去了才开始学的,学Go期间也在每天读这本书,只不过阅读进度缓慢;至于编译原理,我发现完全不用提前学,因为这本书就是在教我什么是编译原理,虽然我还没翻过《编译原理》一书,无法和它做对比,但我觉得既然它已经教会我成功“实现一种语言”,那《编译原理》想告诉我的,这本书也同样告诉了我。
  • 搭建环境:“学一种语言,最难的一步就是第一步”,放在这里就是搭建环境,为了能成功跑出Lua语言和Go语言版的Hello World,我在搭建环境上花了不少时间,为此特意各写了一篇博文做踩坑记录( Lua:博文2)。
  • 命令行:因为此书是在Mac环境中敲的代码,而命令行内容在Mac和Windows上略有不同,我特意在G站上另外开了一个记录此书Windows相关命令行内容,不关心命令行差异的读者可以直接复制使用。

一些感想

  • 我出于想要了解“为什么Lua就能实现热更新”的目的,开始搜索Lua相关书籍,结果除了《Lua程序设计》,还有《Lua设计与实现》,而《自己动手实现Lua》一书是在前两本书的参考下写作出来的,于是我把这三本书都买下来,到手先翻了翻。《Lua程序设计》是我的入门书在此略过,《Lua设计与实现》更像分析Lua源码的理论书籍,而《自己动手实现Lua》有实践部分能让我留下印象,所以我才选择这本书开始阅读,但读完感觉此书并没有介绍到热更部分。不过我在《Lua设计与实现》一书目录上有看到热更部分,所以我的下一本书会是阅读《Lua设计与实现》。
  • 虽然阅读目的没有实现,但我顺便学会了虚拟机和编译器(我的成品)。
  • 此书已经极尽所能讨论且实现了Lua的重要部分,对于我关心的userdata类型,GC垃圾回收等内容没有讲述,在阅读过程中也有一些小问题没有解决,我还需要阅读其他资料,继续把Lua琢磨明白。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua-简洁、轻量、可扩展的脚本语言发布时间:2022-07-22
下一篇:
C++混合编程之idlcpp教程Lua篇(3) - Kunana发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap