(wat-aro)

無職から有職者にランクアップしました

SICP 問題 5.02

5.01の反復的な階乗計算機をレジスト計算機言語使って記述する.

(controller
 factorial
   (assign n (op read))
   (assign product (const 1))
   (assign counter (const 1))
 test-b
   (test (op >) (reg counter) (reg n))
   (branch (label factorial-done))
   (assign t (op mul) (reg product) (reg counter))
   (assign u (op sum) (reg counter) (const 1))
   (assign product (reg t))
   (assign counter (reg u))
   (goto (label test))
 factorial-done)

基本的に制御器の流れ通り.
readする方法がわからないので多分こんな感じでしょうってやっつけ