1999-07-23  夏休みの自由研究にこの一冊

今日は私がハマっている本を三冊ご紹介します。実用書ばかりですが,きっとみなさんの日々のスキルアップに役立つと思います。もしかしたら,夏休みの自由研究に困っているそこのボクにも参考になるかもしれませんよ。

UMLクリック リファレンス(UML IN A NUTSHELL)

O'REILLYの動物シリーズは,凡人では到底太刀打ちできないような難しいことを懇切丁寧,親しみやすい文体で説明してくれます。ぼくも日頃から動物シリーズを愛読しているのですが,この「UMLクリック リファレンス」には苦戦を強いられています。どうも文章が難解だと思うんです。例えば,P.39,“2.2.4 モデル”より一文を引用してみましょう。

UMLは、知識を獲得し、活用することで、問題解決を促進する。知識は、明示的に見ることはできないが、実証することは可能である。知識の実証は、問題の解決策を導出するために知識を適用する中で起こる。これは、知能として知られている。

ぼくが業界用語に慣れていないのも一因だと思いますが,とにかく始終この論調なもので,うんざりしてしまいます。簡単なことを,難しく説明していると思うのは私だけでしょうか。

Javaバーチャルマシン(Java Virtual Machine)

私の常識ではC言語でシステムを組みたいと考えるなら,対象となるCPUアーキテクチャのアセンブラ言語も一緒にお勉強します。そうしなければ実用的なシステムには仕上がらないからです。Cコンパイラが生成したコードを逆アセンブルしてコードを手直し,徐々に最適化が行き届いたコードに近づけていく,そんな地道な作業こそがC言語の醍醐味だと,私は考えます。(この開発手法はややハードウェア寄りというか,動作速度に厳しい場合です。実際にはもっとお気軽にコーディングされても構いません。)

昨今流行りのJava言語も基本は同じです。Java仮想マシンの挙動を知らなくても,それなりに動作するシステムを作ることはできますが,それはあくまで紛い物です。極限までパフォーマンスが要求される場面(有名な例では高速フーリエ変換など)では,仮想マシンの理解なしには歯が立ちません。例えば,Java仮想マシンはスーパークラス,サブクラスといったオブジェクト指向の概念をどのように扱っているでしょうか。Javaプリミティブ型やリファレンス型の扱いはどうでしょうか。javacコンパイラが生成する“.class”ファイルの構造はどうなっているでしょうか。もっと基本的な話をすれば,Java仮想マシンは純粋なスタックマシンですが,レジスタを使わないで四則演算するとはどういうことなのでしょうか。

そんな素朴な疑問に答えてくれるのがこの一冊です。

インターフェース増刊 SuperHプロセッサ,http://www.cqpub.co.jp/hanbai/books/539070.htm

衝動買いしてしまっただけです。私,AKI-80(秋月電子のCPUカード)の経験もないくらい,組み込み機器についてはチンプンカンプンです。余談ですが,リアルタイムOS(μITRONとか)と併せてお勉強すると幸せになれそうです。

(本当に幸せになれた人がいたら,ご連絡ください。)