SICP 読み (258) 5.2 レジスタ計算機での計算

作業開始。ログを以下に。
とりあえず、試験をログからコピペ。修正点を整理すると以下か。

  • make-new-machine
    • stack は使わない
    • allocate-register において register-table に cons するリストに stack を追加
    • lookup-register に引数追加して stack 又は register を返却
  • get-register の修正 (インターフェースに変更ナシ。中身修正)
  • get-stack の追加
  • update-insts!
    • stack を取得しない
    • make-execution-procedure に stack を渡さない
  • make-execution-procedure
    • stack を引数リストから削除
    • make-save と make-restore に stack を渡さない
  • make-save と make-restore
    • stack を引数リストから削除
    • stack をレジスタ名から取得

これは既存の UT も直さないとアレですな。と、言いつつ試験の修正は若干量のみ??
既存な試験に影響があったのは make-execution-procedure と make-save、make-restore くらいだった模様。

盛り込み

大変でした。結論から言えば試験が微妙スギ。低水準な手続きをそこら中で使ってるから修正が大変。次の問題もワケワカんねぇ状態なんですが、それ以前にきちんと試験を書き直す必要あり。
頑張れればもう少し頑張ってみますが、きちんとした試験をナニできるのは明日以降 (弱