矢沢久雄『プログラムはなぜ動くのか』日経BP社、2001年10月
プログラムはなぜ動くのか ― 知っておきたいプログラミングの基礎知識
- 作者: 矢沢久雄,日経ソフトウエア
- 出版社/メーカー: 日経BP出版センター
- 発売日: 2001/09/27
- メディア: 単行本
- 購入: 21人 クリック: 513回
- この商品を含むブログ (78件) を見る
○第一章「プログラマにとってCPUとは何か」
- CPUは、最終的にマシン語となったプログラムの内容を解釈して実行する部品です。
- CPUの内部はレジスタ、制御装置、演算装置、およびクロックの4つの要素から構成されています。
- 一つのCPUの内部には20〜100個ほどのレジスタがあります。制御装置は、メモリー上の命令やデータをレジスタに読み出し、命令の実行結果に応じてコンピュータ全体を制御します。演算装置は、メモリーからレジスタに読み出されたデータを演算する役目を持ちます。クロックは、コンピュータが動作するタイミングとなるクロック信号を発生させるものです。
- パソコンで通常メモリーと呼ぶのはメイン・メモリーのことです。CPUと制御用チップなどを介してつながっていて、ここに命令やデータを格納します。
- プログラムが動き出すと、クロック信号に合わせて、制御装置がメモリーから命令やデータを読み出します。制御装置が命令を解釈・実行するときに、演算装置でデータが演算され、その結果に応じて制御装置がコンピュータ全体を制御します。制御ということばを使うと、難しいことのように感じてしまうかも知れませんが、データ演算以外の処理のことを制御と呼んでいるだけなのです。メモリーやディスク媒体との入出力、キーボードやマウスからの入力、およびディスプレイやプリンタへの出力なども、制御なのです。
- 先ほど挙げたCPUの4つの要素の中で、プログラマが意識しなければならないものは、レジスタだけです。
- ICが持つすべてのピンは、直流電圧0Vか+5Vのいずれかの状態になっています。つまりICのピン1本では、2つの状態しか表せないのです。
- 論理演算をマスターするコツは、2進数が数値を表していると言う考え方を捨て去ることです。数値ではなく、グラフィックスのパターンや、スイッチのON/OFFを表していると考えてください。
- 2進数で表された小数点数を10進数に変換する方法がわかれば、コンピュータが計算を間違える理由を理解できます。先に答えをいってしまうと、10進数の小数点数には、2進数に変換できないものがあるからです。たとえば、10進数の0.1は決して2進数で表せません。
- コンピュータが計算を間違える原因のひとつは、小数点数を浮動小数点数で取り扱っているからです。この問題を回避する方法を二つほど紹介しておきましょう。
- 一つの回避策は、間違いを無視することです。もう一つの回避策は小数点数を整数に置き換えて計算することです。
○第六章「自分でデータを圧縮してみよう」
○第七章「プログラムはどんな環境で動くのか」
○第九章「OSとアプリケーションの関係」
○第十章「アセンブリ言語からプログラムの本当の姿を知る」
○第十一章「ハードウェアを制御する方法」
○第十二章「コンピュータに考えさせるためには」
- プログラムを使う目的は、大きく二つに分類できます。一つは、人間が道具として使うためです。もう一つの目的は、人間の思考過程をプログラムによって代行することです。
こうした、そもそもの本質説明の書はプログラマにとって重要である。何が起きているのかわかって初めて自分が操ることができる。
ただし、分かりやすかったかというと、なかなか難しい本でもあった。
改めて、個々のプロセスについて確認する際に手元においておくべき本だろう。