Magnolia Tech

いつもコードのことばかり考えている人のために。

『コンピュータシステムの理論と実装 第2版』

かつて学校でコンピュータサイエンスの授業を受けていた時に、さまざまなプリミティブな理論や技術を習ったのだけど、正直言ってそれぞれの要素がバラバラ過ぎて、当時は授業を聞いていてもあまり面白くなかった

しかし、後になってある程度まとまった量のコードを書くようになるについて、その下の階層...OSやコンパイラにも興味が出てきて調べていくうちに、「あの時習ったアレはコレだったのか!」と繋がっていく発見が有った

最初から教えてくれればいいのに、とはおもったけど、当時はまだコンピュータサイエンスをどうやって教えるべきか?何を教えるべきか?というのが固まっていなかった、試行錯誤の頃だったのかもしれない(とても昔です)


『コンピュータシステムの理論と実装』は、最も基礎となる「ブール論理」から始まり、実際に動くコンピュータのアーキテクチャアセンブラコンパイラ、OSと現代的なコンピュータを構成する要素を順番に抽象度を上げながら解説していく構成になっている

久しぶりに改訂されて第2版が出版されたので、早速読み始めた

普段馴染みの薄い前半(第一部)は読み解くのに結構苦労するので、最初はソフトウェアの解説がメインとなる第二部を中心に読み始めた

演習問題の細かい解説が全部載っている訳ではないので、単に流し読みしているだけだと理解が追いつかなくなるところもあるけど、半年くらいかけて手を動かしながら(実装しながら)読み込むのがいいかも

特に仮想マシンの解説のあたりは、「なぜ必要なのか?」というのが実感できるので、最初に読んでもいいかも


最初のブール演算あたりがちょっと退屈と言えば退屈だったのだけど(昔、習った時もそうおもった)、章を追うごとに面白くなっていくのはきっと自分の興味が抽象度が高いレイヤーの方にあるからなんだろうな

どこを拾っても、みっちり理解すべきことが連なっているので、年末年始の、まとまって時間が取れる時に読むのがお勧めです