関数型言語の勉強にSICPを読もう - (80) 5章 - レジスタ計算機での計算(295-319ページ)

しばらくサボっていたので反省して一気に読み進める。
ちょっと難しいところにさしかかったので、まとめて読んだ方が忘れなくて良い。


レジスタ計算機は、仮想的な話なのだけどコンピュータの奥底を眺めているようで不思議な気持ち。

  • 5.1.2 レジスタ計算機の記述言語
    • データパスと制御器の話。データパスの図が僕にとって直感的にみづらく苦労した。
  • 5.1.3 サブルーチン
    • いわゆる call の話。共通手続きを共有しようという意図なのはもともと理解できていたが、導入の動機が「ハードウェア的に同じような計算器を組み立てるのは経済的でない」ってのは新鮮な切口だった。
  • 5.1.4 再帰を実装するためのスタックの使用
    • スタックデータ構造が必要だよねという話。
  • 5.1.5 命令の要約
  • 5.2.1 計算機モデル

レジスタ計算機のシミュレータの話。CPUの創り方という本で学んでいたのと、多少のアセンブリの知識があるのですんなりと理解できた。

  • 5.2.2 アセンブラ
    • ラベル周りの実装以外はほぼ1:1に対応しているので難しくなさげ。
  • 5.2.3 命令実行手続きの生成
    • test/branch/goto/asign/save/restore など。x86でいうところのあれかってのが浮かぶのでイメージしやすい。
  • 5.2.4 計算機の性能の監視
    • シミュレータはスタック使用量などなど統計情報がとれるという話。おもしろい。


※「SICPを読もう」の目次はこちら


計算機プログラムの構造と解釈
ジェラルド・ジェイ サスマン ジュリー サスマン ハロルド エイブルソン 和田 英一
ピアソンエデュケーション (2000/02)
売り上げランキング: 56,404