history

青木日記 RSS

<前の日 | この月 | 次の日>

2006-12-16

『Write Great Code vol.2』

『Write Great Code vol.2』が届いた。 結局 Amazon を使ってしまうあたりが弱い。

中身は半分くらいしか読んでないけど、おもしろいな。 いま書いてる本と内容が近いせいかも。

「高級言語のコードがどうコンパイルされるか見ていく」 という方針の本は他にも意外とある。 『高級言語プログラマのためのアセンブラ入門』とか 『プログラミングの力を生み出す本』とか。 そのへんとこの本が違うところは、以下の三点だろう。

  • x86 以外のアセンブリ言語 (PowerPC) も大々的に紹介しており、 しかも複数学ぶことを積極的に推奨している
  • Windows と Linux の両方を想定している
  • 厚い (= 細かく、深く書いてある)

この三点から、複数のプラットフォームや言語を 苦もなくスイッチできる人 (== 必然的に上級者) 向けだなーという感じを受ける。 おれ的にはこの本が一番好みだ。

ただ、最初のほうではさんざん速度が速度がって言ってるけど、 本文はそれほど速度にこだわってるようには見えないんだよな。 なんだかんだ言ってありがちな結論に落ち着いているように見える。 少なくとも、RISC CPU でパイプラインスケジューリングとかやって ガリガリ高速化するぜ、という話ではない。 まあ、最初に大風呂敷広げすぎてたたみきれなくなることは 俺も覚えがあるので、あまりこの点は深くつっこまないでおく。

それから、"The Art of Assembly Language" でも使ってた HLA とかいう高級アセンブラを使ってるんだけど、 これはイマイチな選択だと思うんだよなあ。 学生にとってとっつきやすくなるとかなんとか書いてるけど、 本当にとっつきやすいか? これが? 微妙に似てるくせに違う言語が増えるのってめんどくさくね? ただでさえ GNU as と nasm で mov の向きが違って面倒なのに、 これ以上微妙な違いを増やさないでほしい。 俺は "The Art of..." も持ってるけど、HLA のせいで読む気なくなったんだよな。 GNU as でも nasm でもいいから、素直にアセンブラをそのまま使ってくれ。

あるいはせめて、コードリストの上に「何のコードなのか」を明示しておけば もうちょい混乱は減ったんじゃないのかな。このへんは編集の責任か。 これは自戒を込めて言うんだけど、著者とか翻訳者のような立場だと、 あるコードリストが何の言語で書いてあるかってのは意外とすぐわかるんだよね。 でも読者にはわかんない。 そのような差ができてしまうのは、コードに対するコンテキストの量が段違いだからだ。 特に俺みたいに大雑把なやつは 目次とか索引から用語だけで飛んでいくような読みかたをしているので、 突然コードリストが出てくると、いったいこれはどういうリストなんだろう……? と悩むことになってしまう。

それと、インストラクションのリファレンスは付けてほしかった。 アセンブリ出力の diff をえんえん載せるページがあるなら、 そのぶんをリファレンスにまわすべきだ。 オンラインリファレンスを引きながらじゃないと読めないってのはきつい。

ところで、どうでもいいことだけど、 p.210 のページ上端の見出しが「ブール論理とデジタル設計」になってる。 いったい何がどうしてこうなったんだろう。

えーっと、こんな感想だとメタクソに言っているように見えるかもしれないけど、 実際はそんなことはなく。そもそも、このクソ厚い本を届いた日に半分読むくらいだから、 個人的にはとても面白かったということだろう。

(16:22)

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS