見出し画像

「コンピュータシステムの理論と実装」は楽しい

「コンピュータシステムの理論と実装」を読みました。とても楽しかったので紹介します。

どんな本か

出版社のページ

コンピュータを理解するための最善の方法はゼロからコンピュータを作ることです。コンピュータの構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できます。本書では、これらコンピュータの構成要素をひとつずつ組み立てます。

とあるように、自分で手を動かしてゼロからコンピュータを作る本です。

ハードウェアはHDLで記述し、OSはJackっていうこの本のために作られた言語で実装します。アセンブラ、VM、コンパイラはどのプログラミング言語で実装しても良いとのことです。(私はRで実装しました。)

思ったこと

この本ではコンピュータを低いレベルからひとつずつ順に実装していきます。

NANDという単純な論理ゲートからすべての論理回路を、それらとDFF (data flip-flop) からメモリ等すべての順序回路を、さらにそれらを使ってHackと名付けられたコンピュータを構築します。ソフトウェアはHack用のアセンブラ、そのアセンブリをターゲットとするVM変換器、そのVMをバックエンドとするコンパイラ、という順に。

この低いレイヤから順に抽象を重ねていくやり方がとても分かりやすく、面白かったです。例えばVM変換器を実装するためにはそのターゲットであるアセンブリについて良く知っている必要がありますが、その時点でアセンブリは自分で実装済みで、その仕様を理解した上で実装に臨むことができました。

あと、この一冊でハードウェアからアプリケーションまで、コンピュータの構成要素すべてに触れられたのが良かったです。以前コンパイラを作ったときにはCPUについて知りたくなったし、Java VMを作ったときにはなぜそんな仕様になってるのか謎だったのですが、この本で下から順に実装することにより、それぞれの仕組みや役割が以前よりわかるようになりました。

動くものを作ること、そしてものが動く仕組みを知ることは楽しいですよね。次は何を作ろうかなー。

この記事が参加している募集

読書感想文

この記事が気に入ったらサポートをしてみませんか?