Nand2Tetrisの旅にでた

2 min read読了の目安(約2100字

この記事はかごんま🌋 Advent Calendar 2020の23日目の記事です。

初めまして@hyumanaseです。
『コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方』という本の読書ログを書きました。
今回はまえがき、イントロダクションまでです。

コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方 | Noam Nisan, Shimon Schocken, 斎藤 康毅 |本 | 通販 | Amazon

本書を手にとった理由

もともとコンパイラとかOSをつくることに憧れがあり、低レイヤを知りたい人のためのCコンパイラ作成入門に一度チャレンジしたのですが、早々と挫折してしまった今年の初夏、、、
上記Cコンパイラづくりのslackコミュニティに『コンピュータシステムの理論と実装』を経て参加してる方がいたので、わたしもそうすることにしました。なので本書で力をつけて、Cコンパイラづくりに再チャレンジしたいというのが理由です。

本書の概要

  • コンピュータ・サイエンスの入門書としてかかれたもの。主に欧米の大学で使用されてきた教科書。
    • 原書の出版は2005年。邦訳は2015年。
  • 本書を通して、読者はコンピュータをゼロからつくる。それによってコンピュータを深く理解する。
    • ゼロからつくる = 論理ゲートだけを用いてコンピュータの構築を行う。
  • 全12章。章はそれぞれ自己完結(独立)しており、好きな章から取り組んでもよい。
    • 最初はNANDという単純な電子ゲートから、そして最終的にTetris(テトリス)がつくれるそう。なので本書は『Nand2Tetris』と呼ばれることもあるそう。
  • 本書でコンピュータサイエンスに関する基本的なことは説明されているらしいので、ある程度プログラミングに関する知識があれば、初学者でも大丈夫そう。
  • 公開オンライン授業(Coursera)もあった。

まえがき、イントロダクションまで読んでの感想

  • 聞いたこともない単語や、難しそうだなと思うところもあるが、ワクワクする。

    • 特に「イントロダクション:こんにちは、世界の下側」には知的好奇心をとても掻き立てられた。読み物としても面白い文章だった。
      • "抽象化"おもしろそう。
  • 今のところすべての章を読みたい野心はあるが、挫折しそうな気がする。わたしはCコンパイラをつくりたいので、ひとまずコンパイラに関係ありそうな章を一通り読むことを目標にする。

  • 本書は今年購入した本の中で、最も心待ちにしていた本のひとつだった。にも関わらず、年末までなかなか取りかかれず。今回のアドベントカレンダーに参加しなければ積ん読期間はもっと伸びていただろう。きっかけに感謝。

  • 最後に特にいいなあと思った文章。

現代のコンピュータシステムは巨大な氷山のようなものであり、人の目が届くのは、その表面だけである。<中略>しかし、もしあなたが、その表面の下に隠れている未開の地を探索したいと思ったならば、それはとても幸運なことである!そこには魅力的な世界が待ち受けている。
そして、その世界はコンピュータサイエンスで最も美しいアイデアと技術から作られている。
まえがきより

  • "コンピュータサイエンスで最も美しいアイデアと技術"を確認したい!
    • 1年後の2021年末のアドベントカレンダーでは、少し詳しくなった低レイヤーについて記事書けるようになっていると嬉しいです。