真心好书_LEMON语法分析生成器书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 算法 > LEMON语法分析生成器 > 真心好书
codedump LEMON语法分析生成器 的书评 发表时间:2013-04-16 14:04:10

真心好书

前年底开始阅读Lua源码,中间发现编译基础不行,于是折回去看龙书之类的编译书记.前面看的还能明白点儿,到了LALR部分开始卡壳,于是找来这本书看,以Lemon这个仅有几千行代码量的LALR分析器来讲解一个LALR分析器的完整实现,需要补充一下背景知识的是,这并不是一个实验性质的项目,著名的开源项目Sqlite就以它作为sql解析生成器,当然Lemon的作者也是sqlite之父本人.

有了之前生吞编译的一些理论基础,大概花了两周的时间,把该书的绝大部分看完,除了最后一部分根据模板生成相应的代码部分没有细看,因为对于要了解LALR算法的实现,到生成Action和GO表部分,已然足够了.

写代码分析类的书籍,不是一个容易的事情,因为在分析的同时,也需要将相应的背景知识逐个交代.本书这点做的不够好,当然这不是他的责任,读者需要先把编译前端的理论知识补一补,同时随手背一本做参考.

书中的讲解,基本做到了逐行解释,甚至于有些罗嗦,比如插入符号的hash算法也要解释一下.实际上,做为读者而言,应该也要学会看书时抓住重点,对于类似这样的内容,完全可以一目十行--毕竟你真正的目的是要快速了解这个算法,而不是局限在一些代码上的细节.

本书几年前我就在书店看过,时隔多年之后终于买了一本,打开一看发现还是2006年的第一次印刷版本,可见销量之惨淡.这种讲解看似用不上的理论书籍,在中国卖的不好也是可以预料的,不过难免让人唏嘘.

其实我的本职工作,并不是语言编译等相关的,要看懂Lua源码,也着实不必深入到LALR这一层才足够,Lua本身用的是最简单的递归下降分析法,只不过,理解编译这样可以用语言生成语言的技术,对我而言一直以来都很神秘而且觉得能做到了是件很酷的事情.如果有类似体验的同学,强烈建议从Lua和Lemon这种短小精悍又五脏俱全非玩具项目的小项目入手.

给本书打4星半,内容无问题作者也确实扎实的深入探索了一遍Lemon的实现,奈何不是什么人都是侯捷能把知识描述阐述的清晰易懂.

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“真心好书”的回应

智障 2014-03-10 13:49:50

这个就值58啊?改天俺也写一本,哈哈。

jltxgcy 2013-12-07 18:29:29

您好,您是否有lemon.c lempar.c 能发给我一份么,我在网上找的lemon.c和书上讲的有些不一样。多谢,jltxgcy@163.com

codedump 2013-11-16 11:51:42

LS,你只要把龙书前端的部分看完就能看这本书了.

jltxgcy 2013-11-16 09:42:11

多谢您的分享,我想请教下,龙书的运行时刻环境,代码生成,机器无关优化对看此书有用么。我想把龙书词法解析,语法解析,中间代码生成看完就来看此书,可以么?

codedump 2013-05-27 09:44:33

@skiboo
这个跟lua没关系,但是需要编译的基础。

大懒兔 2013-05-27 08:39:27

不会lua,看这个看得懂么?(过去看过点编译原理的书。)