プログラミング名著100選(3)
今回は、コンパイラ関係。プログラミングをやる以上、規模は小さくとも良いからコンパイラぐらい作った経験が無ければならない。(と思う)
まずは有名どころから。「ドラゴンブック」の名で知られている(表紙に竜の絵が描いてあるから)A.V.Ahoの「コンパイラ I,II」 最適化についてはあまり載っていないのが残念だけど、持っていて然るべき。ちなみに私は(記号言語処理に非常に興味があったので)中学のときに原書で読んだ。ついでに言うと、A.V.Ahoという名前を「アダルトビデオの阿呆」と思っていた。なんとも失礼な少年だったのである。
「プログラミング言語処理系 岩波講座 ソフトウェア科学」 入門書として、わかりやすく定評がある。ドラゴンブックが難しすぎる人へ。
「ヴィルトのコンパイラ構成法」Pascalなどの言語デザイナーとして有名なヴィルト先生の著書。この本は薄いわりにわかりやすくお手軽で良いのだが、残念ながら絶版。
「スモールコンパイラの制作で学ぶプログラムのしくみ」日本を代表するコンパイラの第一人者である中田育男先生の講義を受けた学生が書いた本。文章に難あり。講義自体はいい内容なのだが..。
中田先生がらみの本としては「コンパイラ コンピューターサイエンス・ライブラリー」(ASIN:4782850573),「コンパイラ 新コンピュータサイエンス講座」(ASIN:4274130134)と「コンパイラの構成と最適化」がお勧め。前者2者は、コンパイラを初めて作ろうという人にもお勧めできる。後者は、コンパイラの最適化について詳しく載っている本は日本語ではこれしか無いので、コンパイラ製作者にとって必読の書。
あと、言語処理に限らず、入力があって内部に状態を持っていて何らかの値を出力していくという処理はオートマトンがらみの問題に帰着されることが多い。言語処理に興味の無い人でも知っておいたほうがいいと思うのでお気に入りの参考書をあげておく。「オートマトン言語理論 計算論 I,II[第2版]」
「プログラミング言語理論への招待―正しいソフトウェアを書くために」
コンパイラデザイナにとって必読の書。表示的セマンティックス論と公理的セマンティックス論を中心に、分かりやすく解説している。残念ながら絶版。原著(ASIN:0134985028)はまだ入手可能なので持っていない人は原著ででも読む価値はあると思う。
それから最後に一冊だけ洋書になってしまうのだけど、コンパイラ最適化について書いてある本は数少ないのでこれは外せない。Steven Muchnick氏の「Advanced Compiler Design and Implementation」 まあ、「コンパイラやってます」と言うなら中田先生の最適化本とこの本ぐらいは持ってなきゃモグリでしょ!(`ω´)