概要
この本は,「矢沢久雄セレクション アルゴリズム&デザインパターン」で存在を知り,気になったので読んだ。
書名通り,プログラムが動作する仕組みを解説している。具体的には,以下のような項目について解説されている。
- CPUの動作内容
- 2進数による演算
- 浮動小数点の扱い
- メモリーの仕組み
- メモリーとディスク
- データ圧縮アルゴリズム
- アセンブリ言語
- ハードウェアの制御
IPAの情報処理技術者試験などでそれなりに情報の勉強をしていたつもりだが,この本で書かれている内容はあまり知らなかった。
普通にプログラミングの勉強をしていたら,学ぶことはないが,しっておくことでプログラミングでも活かせることが多かった。できれば,もっと早くに読んでおきたかった。
参考
特に有用だったのは,以下の章だ。
- 第1章 プログラマにとってCPUとは何か
- 第10章 アセンブリ言語からプログラムの本当の姿を知る
第1章では,コンピューターの演算を担当するCPUの動作について解説している。
どういうレジスターがあって,条件分岐や繰り返し,比較,関数呼び出しをどう実現しているのかを解説している。
第10章では,C言語のソースコードをアセンブリに変換して,一行一行機械語との対応を示している。
関数呼び出しに,スタックを使って,実行前のアドレスに移動したり,スタックを使うため,関数内の変数はスコープを持つなど解説している。グローバル変数とローカル変数のスコープがなぜ違うのかという理由を,メモリー上に格納される領域から理解できるようになった。
結論
CPUやアセンブリ言語,機械語という視点から,プログラムがどういうしくみで動作しているのかをわかりやすく解説していた。
こういう情報はなかなか触れる機会がない。できれば,プログラミングを学ぶ最初の方の段階で触れておくと,あとあと良いと思った。
個人的には,もう少し詳しい内容が欲しくなった。アセンブリ言語についての知識があると,プログラミング言語の仕組みの理解が深まるように感じたので,アセンブリ言語についてもう少し勉強しても良いと感じた。
コメント
[…] アセンブリを学ぶという目的には合わないと思った。これなら,まだ「プログラムはなぜ動くのか 第2版」のほうが参考になる。 […]