価格 :\ 5,040 (税込)
著者 :Randall Hyde
発売日 :2005-12
発売会社 :毎日コミュニケーションズ
評価 :★★★★☆ ( 6 のレビューがあります)
ジャンル :単行本
可能時期 :通常24時間以内に発送
ASIN :4839918201
この本の目的は、プログラマにマシンレベルで考えてもらうことです。
・コンピュータでデータがどのように表現されているかを見ることで、
高水準言語のデータ型がどのようにマシンレベルへ変換されるを理解できます。
・CPUでマシン命令がどのように実行されれいるか見ることで、
高水準言語のアプリケーションで行う各種操作にかくるコストについて理解できます。
・メモリパフォーマンスを考察することで、
キャッシュとメモリへのアクセスを最大限に発揮させるために、
高水準言語で変数やその他のデータをどのように編成すればよいか分かります。
現代プログラマにとっては、敬遠されがちなアセンブリ言語ですが、
コンピュータがどうして動作するかについて説明するのに必要最低限の
項目しかないので、アセンブリが分からなくても大丈夫です。
ターゲットとなる読者は、
多少のプログラミングができるがCPUアーキテクチャが分からない人は、
是非、早いうちに読んで欲しいです。
タイトルのGreat Codeですが、少し誤解を招くのではないかと思います。
どちらかというと、Deep Codeという感じです。
それは、可視性に優れ、メンテナンスが簡単にするコードを書くという目的とは無縁の
高速化技術に重きを置いているからです。
とはいえ、浮動小数値同士の比較が非常に危険だというプログラマの常識である
内容の理由など、基本的なコンピューターサイエンスを勉強することができます。
組込みソフトウエアへの需要が高まっている昨今
いきなり”Printf(・・・)”と書いて
「動かないんですけど・・・」というエンジニア初心者を
見かける。
そんな人たちにまず最初に読んでほしい本です。
ブール代数、メモリ、I/O、CPU、アーキテクチャ
基本でいて結構忘れかけているもの、さらに新しい
CPUアーキテクチャについても触れられていて充実の内容です。
二進表現での数値評価からIEEE754浮動小数点演算と取り扱い、ブール代数や80x86プロセッサファミリを例にとったアセンブラとレジスタの効率的な使い方などなど、それを日常的に使う業務プログラマにとっては基礎中の基礎が各章に収められている。これを手に取ったある知人のSEは言った。『基礎をここまできちんと突っ込める人は尊敬に値する』と。
この本の真実強力なところは、それら基礎的な知識が体系付けられ、総覧として一冊の本に纏まっているということだ。KnuthのThe Art of Computer Programmingの模範的な補足とすら言い得る。
高級言語の強みは環境の実装の詳細に拘らないことにあるのは勿論だが、細部に神が宿ることもまた真実であり、言語規格による設計思想の『矯正』だけで現実が解決しないことを理解している人になら、このシリーズの目指すところもまた、強い共感をもって受け入れられるに違いない。
惜しむらくは10年前に読みたかった(苦笑)。
早く続編の邦訳が待たれる一冊だと、皆さんに勧めて歩きたい。
まさにタイトル通り、素晴らしいプログラム(Great Code)を書くために知っておくべきハードウェアの基礎知識を一冊に濃縮した本。
コンピュータの基礎から説き起こして、ハードウェアの力を使い切るには何に注意しなければいけないのか、丁寧に説明した良書だと思います。(翻訳も良い出来だと思います。)
「速いプログラムを書きたい」という実用志向の読者だけではなく、「コンピュータの仕組みを知りたい」という知的好奇心に溢れる読者や、「学校でハードウェアを学んだけれど、ソフト開発に役立つとは思えない」というソフト開発者の方にも薦めできます。
あえて一点だけ注意すると、コンピュータの仕組みについてごく簡単な基礎知識がないと、本書を読むのはちょっと大変かもしれません。(例えば、レジスタという単語を聞いたことが無い、という方だと読み抜くのは難しいと思います。)その場合は何か適当な入門書で勉強してから、是非本書を読んでいただきたい。それだけの価値がある本だと思います。
何年も昔、プログラマはハードウェアを知りソフトウェアを書いていたはずです。なぜこのような本が2005年を過ぎた今出版されるのか?顧客の要求は多様化、そして複雑化しており、それを満たすために我々は再利用性の高いプログラムを効率良く開発することが求められています。しかし、我々の書いているものは、顧客の要求を満たすためのロジックでありながら、まぎれもなくコンピュータの命令でもあるのです。そして、その命令の裏側にはハードウェアがあります。とかくハードウェアのことなんか忘れがちのプログラマはこの本を読むことで、いにしえのプログラミングの心を思い出すことができるでしょう。本書はVol.1と書いてあるように続編があります。著者の野心に敬意を表します。