『プログラムはなぜ動くのか 第2版』を読んだ

読んだ理由

  • 低レベルで何やってるのかイマイチ理解していない
  • Kindleセールで購入

目次

  • 第1章 プログラマにとってCPUとはなにか
  • 第2章 データを2進数でイメージしよう
  • 第3章 コンピュータが小数点数の計算を間違える理由
  • 第4章 四角いメモリーを丸く使う
  • 第5章 メモリーとディスクの親密な関係
  • 第6章 自分でデータを圧縮してみよう
  • 第7章 プログラムはどんな環境で動くのか
  • 第8章 ソース・ファイルから実行可能ファイルができるまで
  • 第9章 OSとアプリケーションの関係
  • 第10章 アセンブリ言語からプログラムの本当の姿を知る
  • 第11章 ハードウェアを制御する方法
  • 第12章 コンピュータに「考え」させるためには
  • 補章 レッツ・トライC言語!

感想

Kindleセールだったので買った。CPUやメモリやコンパイラが具体的にどうやってプログラムを実行しているのかというのはいまいち理解できていなかったので、ちゃんと読んでおこうと思った。生物で言えば、生物現象を理解するために細胞や分子レベルの話もちゃんとやっておこうというアレ。

概ね期待通りの内容という感じで、コンピュータを構成するCPU、メモリ、ディスク、周辺機器がそれぞれどのような役割を果たしているかなどがわかりやすく解説されている。ハードウェアの制約の上でどう生産性を高めてきたかというような歴史的な流れにも触れられている。ハードウェアの視点からみれば、なるほどわかりにくいメモリ管理にも理由があることがわかる。アセンブリ言語も相当古い時代の産物で触らぬ神になんとやら…というイメージだったが、マシン語と1:1対応しているのでプログラムの生の動きがわかり、生の動きがわかることでプログラムの挙動の理解が深まるということで現在でも有用だと思った。

Windows Vistaやフロッピー・ディスクなど古さを伺わせる単語が出てくるのが気になったけれども、逆にさらなる改訂が出ないのは扱っている内容が現在でも通じているということなのではないかと思う。今年はCSの理解も進めればなーと思った。

 

種延真之

発達をしくじって窮乏生活してるおじさんです。最近の興味はアニメ, 心理学, 進化関係のトピック(進化生物学, 進化心理学, evo-devo), たまに思いついたようにプログラミング勉強したりします(最近はNode.js)。メモ類は→Scrapbox