ドラゴンブック第2版(日本語版)が今月発売された。「わぁ~、なつかしー。」と思われた方もいるのではなかろうか。
正式名は「コンパイラ―原理・技法・ツール(A.V. エイホ, R. セシィ, J.D. ウルマン, M.S. ラム著)」である。
通称「ドラゴンブック」と呼ばれているこの本は僕が社会人になった1980年代後半、C言語やUNIXがようやく知られるようになった頃、夢中になって読んだ思い出の1冊。大学でダサい FORTRAN(プログラミング言語)を学ばせられ、社会人になってC言語に出会ってそのエレガントさに魅せられた。そしてC言語それ自身がC言語で、そしてUNIXもC言語で開発されたことを知りソフトウェア理論の底の深さに感動した時代である。そしてそのベースとなったのがこの本で紹介される手法だった。
そこには自分独自のプログラミング言語を作って動かせるという「創造主」的な覚醒と興奮がある。1000ページもある専門書に似つかわしくないインパクトのある表紙はコンピュータの書籍コーナーで異彩を放っていた。
テキスト・ファイルとして書いたソース・プログラムをコンピュータに実行させるバイナリ・ファイルに変換するのがコンパイラと呼ばれるプログラムで、コンパイラそれ自体を開発する手法を解説した本である。プログラム言語の仕様を自分で作り、lex & yacc という字句解析、構文解析ルーチン自動生成ツールを使って自由にコンパイラを生成するのである。
僕もこれの初版は英語版で読んでいた。書棚から久しぶりに取り出して表紙の写真撮影。
第2版として全面改訂され、英語版が売られていたのは知っていたが、今月発売されたのがその日本語版。アマゾンの紹介には次のように書いてある。
------
コンパイラ解説書として国際的に高い評価を得ている“ドラゴンブック”が、コンパイル技術に関する最新の研究成果と話題を盛り込み全面改訂。コンパイラ設計への徹底した入門的な解説からスタートし、ソフトウェアの設計と開発における諸問題へのコンパイル技術の応用へ至るまで、広範囲に及ぶ話題をカバー。本書の前半は学部レベルでのコンパイラの授業用に、後半はコード最適化に重点を置いて大学院レベルでの授業用に構成。
------
現在 lex & yacc は Linux では標準装備、 Windows でもそれらと同等な flex/bison というフリーソフトが公開されているので、この本で紹介されているサンプルは自分で試すことができる。ちょっと高いがこの本を買って、自分オリジナルのプログラミング言語を作るのに挑戦してみてはいかがだろうか。
第2版の日本語版はクリックすると詳細情報がご覧いただける。
「コンパイラ―原理・技法・ツール(第2版)」
あくまで英語版にこだわりたい方は以下からどうぞ。
「Compilers: Principles, Techniques, and Tools (2nd Edition)」
ブログ執筆のはげみになりますので、1つずつ応援クリックをお願いします。