Write Great Code Vol. 2 低いレベルで考え、高いレベルで書く

| | コメント(0) | トラックバック(0)

Randall Hyde 著 " Write Great Code: Thinking Low-level, Writing High-level" の日本語版「Write Great Code Vol. 2 低いレベルで考え、高いレベルで書く」が本日発売されました。

昨年出版され、バイナリ界隈で好評を博した前著日本語版「Write Great Code Vol. 1 ハードウェアを知り、ソフトウェアを書く」の続編です。今回は Vol. 1 を担当した強力監訳陣の皆様と一緒に私も監訳に関わらせていただきましたので、簡単に内容を紹介させていただきます。

推薦の辞

Write Great Code Vol. 2 低いレベルで考え、高いレベルで書く」は、高級言語(高いレベル)で書かれ機械語(低いレベル)にコンパイルされるプログラムのパフォーマンスがテーマの本です。

GCC や Visual C++、Delphi といった高級言語コンパイラの挙動がまさに本書の話題の中心であり、ソースコードがコンパイラによってどのように解釈され、どのような機械語に変換されるか、また最も効率のよいグレートコードを書くためには高級言語でどのようなコーディングをすればよいのかを、一冊 637 ページまるまる使って教えてくれます。

構成的には、はじめの 1/3 ほどを 80x86/PowerPC アーキテクチャ、ファイルフォーマット、ツール・コンパイラの使い方といった基礎事項の説明に割き、あとはただひたすら、各章のトピックに沿って GCC や Visual C++ のようなコンパイラ製品の動作解説が続きます。

このコンパイラ解説の圧倒的なボリュームと妥協のない解説が本書の最大の特徴です。定数・変数・ポインタ・算術式・配列・構造体・クラス・制御構造・関数・アクティブ化レコード(スタックフレーム)といった高級言語に見られるプログラム要素を網羅し、それらをコンパイラがどう扱うかを、膨大なサンプルコードで逐一説明しています。

それゆえ本書は、実在のアーキテクチャをターゲットとする最新コンパイラ製品のコードジェネレーションの事例解説としても有用であり、単に効率的な高級言語コードを記述する手法を学ぶだけでなく、コンパイラ理論を学ぶ際の副読本としても理想的な一冊といえるでしょう。

なお前著「Write Great Code Vol. 1 ハードウェアを知り、ソフトウェアを書く」からの読者は先刻承知と思われますが、このシリーズは一般的な知識を平易に解説する教科書的な内容となっています。本書もアセンブリ言語がわかれば自明な事柄の解説が大半を占めているので、経験あるプログラマにとってはやや退屈かもしれません。著者も冒頭で次のように述べています。

本書では、何も革新的なことは説明しません。グレートコードを書くための、長年の実績に裏打ちされた手法を説明し、自分が書いたコードが実際のマシンでどのように実行されるのかを理解できるようにします。長年の経験を持つプログラマーであれば、おそらく本書の内容に心当たりがあるでしょう。この手法をきちんと習得していない若いプログラマーが書くコードをあまり目にする機会がなければ、本書の内容を無価値とさえ考えるかもしれません。本書(およびこのシリーズの第1巻)では、今の世代のプログラマーの教育に欠けている部分を補い、良質のコードを書けるようにすることを目指しています。

というわけで、本書は Vol. 1 に続きスキルアップしたいプログラマが読めばきっと役に立つ教科書です。本書を読んで退屈に思ってしまった経験あるプログラマの方は、自分より若いプログラマにぜひ本書を薦めてください。

個人的な感想

本書で特徴的なのは、個々のトピックを説明するサンプルコードで、たがいに関連のない処理系がきまぐれに使われていることでしょう。GCC(x86)、GCC(ppc)、Visual C++、Borland C++、Delphi が意味もなく順番に使れている感じで、違和感があるというか、ペダンティックな印象すら受けます。

原書サポートサイト www.writegreatcode.com には Chapter 8 の PDF 版がダウンロードできますが、これを見れば、だいたいどんな感じかわかると思います。

特定の処理系に偏った内容にしたくなかったのかもしれませんが、結果として読者が実際にコードを書いて試すハードルを高くしていますし、正直いってこれはあまりよいアイディアとは思えませんでした。

このシリーズの次の本「Write Great Code Vol. 3 Engineering Software」は、サブタイトルの示すとおりソフトウェア工学について、特に読みやすく保守しやすいコードを書く手法を扱っているそうです。内容的には定番「達人プログラマー—システム開発の職人から名匠への道」と同じカテゴリに属するのかもしれません。現在まだ執筆中のようですが、きっと類書にはない特徴を持つ教科書のような本に仕上がるでしょうから、今から楽しみにして待ちましょう。

リンク

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: Write Great Code Vol. 2 低いレベルで考え、高いレベルで書く

このブログ記事に対するトラックバックURL: http://www.keshi.org/mt/mt-tb.cgi/49

コメントする

このブログ記事について

このページは、yaegashiが2006年11月30日 23:55に書いたブログ記事です。

ひとつ前のブログ記事は「Binary Hacks」です。

次のブログ記事は「PS3 Linux」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0