这一切都取决于您想走多远,以及您已经知道多少。对于初学者来说,Winksel的书确实很棒,但是是的,它并没有像大约20年前所写的那样向您介绍语义的最新技术。尽管如此,它仍然是该主题的很好的入门介绍。还可能值得指出的是,T。Nipkow已经将Winskel的书中的很大一部分形式化为Isabelle / HOL,请参见此处。因此,如果您想学习使用交互式校对助手,同时了解编程语言的语义,则可以借鉴许多连贯的材料。
其他更高级的书籍是:
Gunter,《编程语言的语义学》,一本更高级的书,侧重于指称语义学,一种语义学的方法,没有达到期望。专注于纯功能语言而忽略并发。这是我从大学时代就学到的语义学的书,回想起来,我希望我改用Winksel的书。对于初学者来说,Gunter并不容易阅读。
Amadio和Curien的领域和lambda计算。另一本书虽然讨论了过程计算,但更多地以领域理论的传统写作。
上面已经提到过约翰·米切尔(John Mitchell)的书。它们也主要涉及顺序计算。
诸如Pierce的TAPL之类的书非常好,但仅着重于编程语言的一个方面,即类型,这一点同样重要。我不建议您将它作为编程语言一般领域的第一篇入门文章,但是任何想学习类型的人都必须阅读。
说实话,我认为目前还没有关于语言语义学的最新入门书来反映过去十年所取得的巨大进展,它从决定性方法和顺序计算向并发性(过程计算和游戏语义学)的决定性转变。 ,公理学语义以及在验证中使用交互式证明助手。
2014年4月22日更新: Tobias Nipkow和Gerwin Klein出版了一本新书
可以看作是“伊莎贝尔(Isabelle / HOL)的Winskel”。它是对编程语言(主要是操作语言和公理语言)的语义的介绍,但与以前的基于笔和纸的方法不同,这本书用Isabelle / HOL表示了所有数学知识。换句话说,它同时是一本有关定理证明的书。
这本书是全新的,所以我还没有用于教学,但是它看起来真的很适合作为比
Pierce等人的Software Foundations更低层次的介绍。