読書メモ

・「スモールコンパイラの制作で学ぶプログラムのしくみ
(石田綾:著、中田育男:監修、技術評論社 \1,800) : 2005.01.09

内容と感想:
 
コンパイラはソフトウエア開発をする人には避けては通れない。プログラミングする人は必ずコンパイルをするはずだが、ではコンパイラってどういう仕組みになっているか知る人は意外に少ないのでは?コンパイラはコンピュータ工学(サイエンス)の基礎である。コンパイラの理解なしにはプログラミングが分かったとは言えない。CやJavaといった高級言語を使ってプログラミングしているだけでは十分ではないということ。書いたコードから、実際にコンパイラが生成するオブジェクトの振る舞いは、コンパイラ次第とも言える。
 本書でいう「スモールコンパイラ」というのは著者が大学院在学中の研究テーマで作成していたJava言語で作ったコンパイラ(Cellコンパイラと呼んでいる)である。従って、完全なCやJavaのコンパイラの解説書ではない。その代わりに実際にJava言語でコンパイラを制作しながら、コンパイラの仕組みを理解することが出来るようになっている。最終的には携帯電話上(i-appli)で動作するコンパイラに拡張している。Cellコンパイラ自体はJavaで書かれているため、結局はJavaVM(仮想マシン)上で動くことになるので、純粋なコンパイラ方式ではなく、Cellコンパイラが生成した中間コードを、(Javaで書いたVMである)CellVMがインタプリタとなり実行することで動作するコンパイラ・インタプリタ方式である。通常のプログラミングでよく使われる基本的な構文はほとんど網羅しているので、コンパイラの理解に役立つだろう。
 コンパイラ機能の柱は字句解析、構文解析、意味解析、コード生成である。多くの絵や図表を使って、丁寧に書かれていて理解しやすい。
 巻頭で監修の中田氏が「推薦のことば」に書いているように、著者(女性)はもともとは文系だったが、大学院で突然、コンパイラをテーマに選び、文系のセンスでこんな本まで書いてしまったそうだ。恐るべし。携帯電話上でコンパイラを動かそうなんていう発想も、ケータイ全盛時代、ケータイ世代ならではである(ケータイでコンパイラを動かして何が嬉しいのか?というのは野暮である)。
 プログラミングをする人は本書を読むと、きっと世界が広がるだろう。理解が深まると思う。

-目次-
第1章 コンピュータに意思を伝える
第2章 コンパイラを作る
第3章 コンパイラを拡張する
第4章 携帯電話にコンパイラを載せる

更新日: 05/01/22