参考文献

书中引用到的文献

[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等)。

注 释

[1]. Principles of Compiler Design的封面是一名骑士和一只恐龙,因此被人称为“龙书”,但因为那条龙是绿色的,所以称为“绿龙书”。9年后(1986年),原来的两位作者加上Ravi Sethi, 升级了这本书,书名改为Compilers: Principles, Techniques and Tools, 封面依然沿用骑士和恐龙,那头龙是红色的,因此被叫作“龙书二”或者是“红龙书”。——译者注

[2]. 相当于人民币15 000元左右。——译者注