编程语言书籍推荐

感觉最近要忙于学习, 暂不更新. 对于有志于研究编程语言者, 我推荐下列书籍.

程序设计入门

1. Structure and Interpretation of Computer Programs

虽老但好, 不减当年风采. 通过阅读此书, 读者可期对于计算机整体拥有全面深入的了解.

(有中文翻译, 但文学性部分翻译全是错的, 技术性部分却没有太大问题.)

2. The Little Schemer; The Seasoned Schemer

采用对话体写成, 饶富趣味. 有些内容相当值得一读, 比如对于应用序y算子的推导.

(The Little Schemer最近也有中文译本了.)

3. How to Design Programs

较新的书, 带有现代美式计算机教材特有的啰嗦, 但是内容没有什么问题, 甚至涵盖了前面书中没讲但重要的东西, 即便读者可以从其他地方学到.

(有第一版的中文翻译, 但第二版也有中文翻译, 但没有电子版.)

4. Programming in Standard ML

虽然没有写完, 但已经写了的部分可以读一读. Standard ML是编程语言人的智慧结晶, 从中可以学到许多.

(没有中文翻译.)

编程语言入门

1. Essentials of Programming Languages

较为浅易, 几乎没有任何定理和证明, 适合非常不擅长数学的人阅读, 或是作为初次学习编程语言获得对于其大概的直觉印象.

(没有中文翻译, 我自己翻译了一小部分.)

2. Programming Languages: Application and Interpretation

可以看作是受到EoPL启发而产生的书籍, 比EoPL更为现代, 内容更为丰富.

(有还算可以的中文翻译.)

3. Types and Programming Languages

凡治编程语言者, 无不听闻其大名. 这本书就是如此重要, 任何学习编程语言的人都不应该错过. 而且, 这本书不难.

(有中文翻译, 但还不如没有.)

4. Practical Foundations for Programming Languages

Robert Harper的专著, 对于编程语言的百科全书式处理, 强烈地反映了其个人的见解.

(没有中文翻译.)

5. Semantics Engineering with PLT Redex

欲对于抽象机器有所了解, 应阅读第一部分, 而第二部分是对于第一部分内容的程序化机械化处理. 第三部分可不读, 因为是第二部分引入的工具的应用.

(没有中文翻译.)

6. Software Foundations第一卷和第二卷

使用证明助手Coq对于逻辑和编程语言的介绍.

(有中文翻译.)

7. Programming Language Foundations in Agda

Software Foundations的第二卷的Agda版本

(有中文翻译.)

8. Proofs and Types

本书更偏向逻辑学一些, 但本来逻辑学和编程语言就不分家, 一部分原因是Curry-Howard同构.

(没有中文翻译.)

可计算性与计算复杂度

1. Computability and Complexity (Neil Jones)

本书是一本奇书, 将编程语言人的观念引入可计算性与计算复杂度理论中.

(没有中文翻译.)

部分求值

1. Partial Evaluation and Automatic Program Generation

部分求值其实就是程序特化, 就是固定什么参数不变.

(没有中文翻译.)


好了, 先就这么多吧.

你的回應