这本书是布朗大学程序语言的课程用书.讲的东西和EOPL差不多,不过是先有的EOPL,后有的这本PLAI,两本书对比读一读,别有一番收获.
本书主要讲的就是一个问题,如何实现一个解释器.
从一个简单的计算器开始,引入函数做更高的抽象.
为了解决代换的效率问题,引入了环境,而环境中的函数就引出了闭包,接着解释器实现了递归以及变量.
作者从实际问题入手,介绍了CPS,接着介绍了continuation,并实现了它,continuation实际上就是个函数嘛,和GUI里常写的event handler类似. 作者对类型系统做了一个简单的介绍,讲了一下类型判定的问题,介绍了类型推导的一个经典算法:unification;介绍了下Prolog,然后说这就是用来做类型检查的好工具嘛...-_-|||.
本书的末尾作者介绍了scheme的宏,由浅至深举了几个生动的例子,并且回答了为什么要引入卫生宏.
在实现解释器的同时,书中对一些概念也做了对比和介绍,比如: static scope&dynamic scope, eager evaluation&lazy evaluation, call-by-value&call-by-reference等等. 同时,作者也对Java,C等进行了分析:比如为什么引入namescpace.
但是,本书的缺点也很明显:那就是有些东西没介绍啊,面向对象之类的都没提.不过本书的新版提到了一些.
总的来说,这是一本值得推荐的书,个人认为适合在读完SICP后阅读风味更佳.
评论
对“评论”的回应
《Programming Languages》热门书评
-
评论
2有用 0无用 RrandOm 2015-05-11
这本书是布朗大学程序语言的课程用书.讲的东西和EOPL差不多,不过是先有的EOPL,后有的这本PLAI,两本书对比读一读,别有一番收获.本书主要讲的就是一个问题,如何实现一个解释器.从一个简单的计算器开始,引入函数做更高的抽象.为了解决代换的效率问题,引入了环境,而环境中的函数就引出了闭包,接着解释...
-
面向程序员的程序语言书
0有用 0无用 jiuren 2016-09-09
提到这本书,就不得不提Dan Friedman的EOPL。我大致读过一些,还没读完。明显这个书对于程序员来说可能要更容易access一点。这本书里面有很多对于其他语言例如java,c的特性的分析比较,然后再把这些特性在解释器里实现出来。自己做一遍就会有一种恍然大悟的感觉,我读完了以后觉得那些语言特性...
书名: Programming Languages
作者: Shriram Krishnamurthi
副标题: Application and Interpretation
出版年: 2007
定价: usd 9.99
ISBN: 9780272692233