すばらしい本ですね。Javaの基本的な文法がわかっているが情報処理概論や言語理論などの基本的な正規教育を受けていない人、すなわち情報工学科でてないプログラマーには超おすすめです。Javaですが、Java以外のことも学べます。第1章でJavaを褒めちぎった後、いきなり第2章と3章でパーサーやインタープリタ言語の実装をします。再帰のルーチン{ハノイの塔とか・・・}をやったことない人は第2章のソースでメソッドがメソッドを呼んでいるさまを追いかけると数式の優先度はこうやって実装するのか・・・と目から鱗状態でしょう。ソース打ち込んで「ハッ」とするものがあるまで読むことが重要ですね。ハーバートシルトさんの書いたところがいつまでも役に立つ知識を含んでいるように思います。ジェームズさんのところはJavaのパッケージにどっぷり使ったサンプルです。Javaを極めるのが目的ならここも重要でしょうが、類書にのってることですね。
ハーバートシルトさんはC/C++の独習シリーズで有名です。僕もたくさん持ってますが分厚すぎるし、内容も濃いのでやり終えてないです。いまさらC++やったってなぁという感覚も邪魔して元気がでません。でもJavaはとっつきやすいし、廃れなさそうなので元気がでます。
java取り組んでていつも問題になるのは文字列から命令を読み取るところなどです。そこでパーサー(字句解析)を実装しようとするのですがいつも悩んでしまう。(<=レベル低いだけって話もありますが)言語理論の本なんか紐解くとまずチョムスキー文法だのなんだのって呪文が並んで、ソースコードがコンパイルされてバイナリーコードになるまでの長く険しい道が解説されます。これを理解しなきゃ先にすすめないのか・・・。学校で時間のたっぷりある学生ならいざしらず、サラリーマンにんな時間あるか!と途方にくれます。このソース読んで咀嚼する方がよっぽど近道です。
なにごともソース見るのが一番です。(百聞は一見に如かず。)難しい理屈はあとです。他の章もそうですが、あらゆる分野の本当のさわりが本質的なところだけ、理屈最小限に書かれているように思えます。レベルアップ期にはこの手の本にどれだけ真剣に取り組んだかが重要だと思います。Delphiやる人だってこの本の内容は学んだ方がいい。ある程度のレベルの人はプログラムの本を見るときは言語にこだわらないで本を漁ったほうがいいと思います。本書は文法だけは押さえた人が実装の具体例から発想を抽出するのに向いてると思います。
|