Essentials of Programming Languages - 图1

    关键字:数据抽象,归纳,递归,解析,上下文无关文法,表达式求值,环境,可变状态,Continuation,CPS,尾递归,Tail Form,类型,类型推导,模块,对象和类

    推荐:★★★★★
    难度:★★

    豆瓣链接:https://book.douban.com/subject/4030015/


    本书真是一本包罗万象的奇书。
    因为有scheme的基础,所以看起来还是比较容易的。
    读起来就发现,真是不忍释卷。

    书中提到了很多概念,模糊的事物一下子清楚起来。
    每遇到一个概念,我都会感到一阵高兴,原来这就是XXX呀。
    我认为本书是把各种知识点串起来的必备读物。

    最难得的是,文字间隐含着一种居高临下的感觉。
    让人感觉铿锵有力,掷地有声。

    不得不提的是,我在这本书中找到了数十本书的影子。
    让我回想起来次数最多的就是《Lisp in small pieces》。
    都是按着表达式求值,环境,状态,continuation,这样的顺序来写的。

    对类型推导的介绍,也是非常详细。
    恕我愚昧,我还没有在其他书中看到这么容易理解的说明。

    知其然也要知其所以然,这是很多好书都具备的特点。
    各种概念不是与生俱来的,而是发展过来的。
    为了解决什么问题,进行了哪些思考,这些在本书中同样发挥的淋漓尽致。

    如果没时间读这本书,那么附录A的“For Further Reading”非常值得一读。
    它将程序语言理论的方方面面都进行了历史总结和现阶段汇报。
    虽然很简短,但是能让读者迅速了解这个领域。

    好了,不说了。有时间,我还要再精读一遍。
    如果scheme看起来比较吃力的话,请试读《The scheme programming language》。
    欢迎交流。