参考文献
书中引用到的文献
[1]情報処理シリーズ7 コンパイラ
英文版:Principles of Compiler Design [1]
[2]プログラミング言語C
英文版:The C Programming Language
中文版:《C程序设计语言》(机械工业出版社)
[3]The Problem with Integer Division
http://python-history.blogspot.com/2009/03/problem-with-integer-division.html
[4]文字符号の歴史——欧米と日本編
中文译名:《文字符号的历史——欧美与日本篇》
作者:安冈孝一安冈素子
出版社:共立出版社,2006年
[5]プログラミング作法
英文版:The Practice of Programming
中文版:《程序设计实践》(机械工业出版社)
[6]YARVアーキテクチャ
英文版:YARV Architecture
http://www.atdot.net/yarv/yarvarch.en.html
[7]The Java® Language Specification
http://docs.oracle.com/javase/specs/jls/se7/html/index.html
[8]オブジェクト指向入門 第2版原則·コンセプト
英文版:Object-Oriented Software Construction,Second Edition
[9]Effective Java プログラミング言語ガイド
英文版:Effective Java
中文版:《Effective Java中文版(第2版)》(机械工业出版社)
[10]オブジェクト指向における再利用のためのデザインパターン
英文版:Design Patterns: Elements of Reusable Object-Oriented Software
中文版:《设计模式:可复用面向对象软件的基础》(机械工业出版社)
[11]The Trouble with Checked Exceptions
http://www.artima.com/intv/handcuffs.html
[12]Java の理論と実践:例外をめぐる議論 チェックすべきか、チャックせずにおくべきか
中文译名:Java理论与实践:关于异常的争论要检查,还是不要检查?
http://www.ibm.com/developerworks/cn/java/j-jtp05254/
[13]Exceptions
http://joelonsoftware.com/items/2003/10/13.html
[14]Cleaner, more elegant, and harder to recognize
http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx
[15]More Joel On Software
中文版:《软件随想录:程序员部落酋长Joel谈软件》(人民邮电出版社)
[16]Python リファレンスマニュアル 2.4.1. 文字列リテラル
英文版:The Python Language Reference 2.4.1. String literals
http://docs.python.org/2/reference/lexical_analysis.html#literals
其他推荐的书
关于制作编程语言的书虽然经常会出,但是多数由于出版量不大而慢慢地绝版了……(希望本书不会这样)
因此我将以前学习过的书作一个介绍(说句题外话,近藤嘉雪老师的“yaccによるCコンパイラプログラミング”(《使用yacc开发C语言编译器》)一书在日本亚马逊网站上卖到了245.000日元 [2],即使是这样我仍然觉得这本书很值得),在这里只介绍一些价格合适并且在市面上可以买到的书。
下面列出的是本书出版时(2009年4月)的参考书籍。
新コンピュータサイエンス講義 コンパイラ
中文译名:《新计算机科学讲座:编译器》
作者:田中育男
出版社:Ohmsha出版社,1995
日本编译器第一人田中育男先生的书。
田中先生的这本书以理论为主,难点很多。书中记录了类似于Pascal的语言处理“PL/0”的全部代码,很有实用价值。PL/0是一个递归下降语法分析器,因此本书可以为不想使用yacc来制作编程语言的人提供参考。
lex & yacc プログラミング
英文版:lex & yacc
中文版:《lex与yacc》(机械工业出版社已绝版)
O’Reilly的动物系列图书。我认为就凭它在这个系列中,这本书就值得信赖。它的出版时间较早,但可以作为yacc/lex的参考手册,是一本非常有实用价值的书。
下面这些书是我目前正在学习的。
コンパイラⅠ-原理·技法·ツール
英文版:Compilers: Principles, Techniques, and Tools (2nd Edition)
中文版:《编译原理》(机械工业出版社)
可以说是编译器制作方面的圣经之著。因为封面上印有龙的图案所以被叫作“龙书”(确切地说应该是“红龙书”)(第4章中译者也引用了这本书中的内容)。
本书是原版的第一卷。现在,第二卷已经很难见到了(即便是作者这样的资深人士也没有机会收藏)。
本书内容不太容易理解(例如在不使用yacc的情况下制作LR解析器),但我觉得这是本不可不读的好书。
コンパイラの構成と最適化
中文译名:《编译器的结构与优化》
作者:田中育男
出版社:朝仓书店,1999
又是田中先生的书。其中对“优化”的讲解占到了本书一半以上的篇幅。
如果你想要了解现在的商业化编译器是怎样做的,这本书再合适不过了。
Garbage Collection: Algorithms for Automatic Dynamic Memory Management
作者:Richar Jones,Rafael Lins
出版社:John Wiley & Sons,1996
尚无译本。本书中不仅介绍了Mark-Sweep GC和Copying GC等算法,还讲解了通过简单地实现来解决问题的方法(世代型GC、增量GC、并发GC等)。
注 释