Writing An Interpreter In Go

Thorsten Ball

出版社

Thorsten Ball

出版时间

2017-02-15

ISBN

9783000558085

评分

★★★★★
书籍介绍
这本书最打动人的地方,是它把高冷的编译原理从神坛上请了下来。市面上讲编译的书,要么陷在自动机、文法理论的抽象证明里,要么像本科课程那样只偏重 parser 这一小段,让初学者望而生畏。作者偏偏反其道而行:用 Go 语言、以 TDD(测试驱动开发)的方式,从 0 行代码一步步搭出一个完整可运行的解释器,每一步都附全部代码、全部测试。读者反馈里反复出现的,正是这种「终于对编译原理有点懂了」的踏实感——它不追求理论完备,而追求亲手把 lexer、AST、Pratt 解析、闭包、REPL 一个个拼起来。它特别适合想动手而非只想看公式的编程爱好者,代价是它不是一本严谨的学术著作,有读者觉得「不太行」,追求理论深度的读者或许会失望。
用户评论
入门书~很详细~
编译原理最佳实现
用c++写了一个,所有type都是value semantics,没有pointer乱飞。参考Sean Parent的cppcon talk: Better Code: Runtime Polymorphism https://github.com/versatran01/monkey-lang
市面上最好的教你如何写解释器的书,相较于本科课程侧重于 parser,以及各种编译原理侧重于自动机及文法理论,此书采用 go 语言及 TDD 的方式来从头构建一个解释器,对新手来说相当友好,非常容易上手。
在github找了个JS实现版,很不错
我觉的不太行诶
非常好的入门书,通过TDD的方式来完成各种模块,感觉终于对编译原理有点懂了。
很适合迅速打通编译器的整体流程,一个礼拜就能看完,入门之后就可以看编译原理和形式语言自动机相关的书了。看完此书再看理论的好处是,不容易被各种细节带偏。
下载
收藏