私の目的は, 時計の運動が一個の錘りによるのと同様に, 多重の運動の多くが, 最も単純で物質の力によるものである限り, 天の機械は神がかった生きているものではなく, 時計仕掛けであること (また, 時計に心があると信じるものは, 製作者の栄光を仕事のせいにする)を示すことである.
Johannes Kepler (Herwart von Hohenburgへの書簡, 1605)
本章では伝統的な計算機での, ステップごとの操作を使い, プロセスを記述しよう. そういう計算機, 別名 レジスタ計算機(register machine)は, レジスタ (registers)と呼ぶ一組の記憶素子の内容を操作する命令(instructions)を逐次に実行する. 代表的なレジスタ計算機の命令は, あるレジスタの内容に基本演算を作用させ, 結果を他のレジスタに代入する. レジスタ計算機で実行されるプロセスの記述は, 伝統的な計算機の「機械語」プログラムに非常によく似ている. しかしある特定の計算機の機械言語に焦点を絞る代りに, いくつかのLisp手続きを調べ, それらの手続きを実行する特別なレジスタ計算機を設計しよう. そこでわれわれの仕事を, 機械言語の計算機プログラマの視点ではなく, ハードウェア方式設計者の視点で解決していく. レジスタ計算機を設計するのに, 再帰のような重要なプログラム構造を実装する機構を開発しよう. またレジスタ計算機の設計を記述する言語を提案する. 5.2節では, 設計した機械をシミュレートするためにこれらの記述を使うLispプログラムを実装する.
われわれのレジスタ計算機の基本演算の殆んどは非常に単純である. 例えばある演算は二つのレジスタから取り出した数を足し, 第三のレジスタに格納すべき結果を生じる. こういう命令は, 簡単に記述されるハードウェアで実行出来る. しかし, リスト演算を扱うためには, car, cdrおよびconsのような, 精巧な記憶割当て機構を必要とする記憶装置用演算を使うことになる. 5.3節では, 更に初歩的な演算を使い, これらの実装を学ぶ.
5.4節では, レジスタ計算機としての単純な手続きを形成する経験を積んだ後, 4.1節の超循環評価器で記述したアルゴリズムを実行する計算機を設計する. これにより, 評価器における制御の機構の具体的なモデルを用意することで, Schemeの式がどう実行されるかの理解のギャップが埋る. 5.5節では, Schemeプログラムを, 評価レジスタ計算機のレジスタと命令を使って直接実行出来る命令列に変換する単純な翻訳系を学ぶ.