半農半エンジニアの記録

関西在住エンジニア。個人で勉強・開発したこと、その他趣味のことを書いてます。農業してます。

【読書録】プログラムはなぜ動くのか

未経験からソフトウェアエンジニアになり7年。
仕事ができる程度のプログラミングはできるようにはなったけど、CPUとかメモリとかプログラムの仕組みに関する知識をしっかり学んだことがないのでちゃんと勉強してみることにした。

第一弾はこちら

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

  • 作者:矢沢久雄
  • 出版社/メーカー: 日経ソフトウエア
  • 発売日: 2007/04
  • メディア: 単行本(ソフトカバー)

選んだ理由

とりあえず本屋でいくつか目を通してみて

  1. 随所に図が挿入されていて取っつきやすそう
  2. 昔の本だけど版数が多い

といったあたりで一冊目として読むにはいいのかな、と判断。

概要

タイトルの通りプログラムがなぜ動くのか、つまり人間が書くプログラムを PC がどうやって理解し実行しているのか、という内容。
高水準言語をコンパイルして機械語に翻訳されるとどう変わるのか、C言語をアセンブリ言語に変換して比較しながら解説している。
またCPUの構成(主にレジスタ)とともに、読み込んだコードがCPU、メモリを駆使して実行される流れの説明がされている。

感想

はじめに読む本としては間違ってなかったかな、という印象。
前述の通り図を使って説明してたり、内容もそこまで深入りしない内容だったので合間の細切れな時間でも読み勧めやすかった。
アセンブリ言語を使って比較しながら説明されるのでわかりやすい。
一方、やはり古い内容の本であるため内容があてにならない部分も散見される(PC のメモリは 2 GB くらい、最新の Windows は Vista だ、とか)。このあたりは流石に改定してほしい。
軽くつまむ程度には良いが、しっかり勉強するには物足りない。

キーワード

CPU
メモリ
レジスタ
高水準言語
アセンブリ言語
コンパイル
機械語