TypeScriptを使ってコンピュータシステムの理論と実装をやり終えた

2020-08-14

なにこれ

この本を読み終えた。その感想とか。

コンピュータシステムの理論と実装

取りくむモチベーション

一通りWebアプリケーションは作れるようになったけど、次のレベルに上がるにはどうしようか?と思っていた。 レベル的にはこんな感じ

  • オブジェクト指向言語なら習得してなくてもだいたい使い始められる
  • Webアプリケーションフレームワークもドキュメント読めばだいたい使える

そこから1つレベルをあげる為にアプリケーションレイヤより低いレイヤの事を勉強しようと思った。 どうやってプログラムやコンピュータが動いているのか想像つかないものはたくさんあるし。

そんな訳で低レイヤの事を色々調べたら評価がよかった本書を見つけたので取り組むことにした。

どうやって取り組んだか

1章から順に演習問題を解いていった。 途中でまじわからねえ、、、となった時はGitHubに行けば回答がたくさんあるのでそのコードを読んだり、動かしてみて理解を進めた。

6章以降の実装はTypeScriptを使った。途中までRustを使っていたが、Rust自体を調べることが多くなったので途中から切り替えた。 TypeScriptでの実装参考になるかもしれないので晒しておきます。

https://github.com/otegal/nand2Tetris

自分は12章クリアするまでに2ヶ月かかりました。

やってどうなった

ざっくりコンピュータがどうやって動いているのかがわかるようになりました。

という表面のスキル向上はありますが、それ以外に得られた2点の方が自分としては大きい。

  • コンピュータサイエンスをもっと知りたくなってきた
  • 抽象化の効力の大きさを今まで以上に実感出来た

今までは工学的なスキルをメインであげていたけど、理学的なスキルとあげていくとより面白くなってくるのかな?と思いました。