SICP 読み (356) 5.5 翻訳系

次の問題に着手。

問題 5.48

色々見てるんですがハードル高い。次のページをめくるのが正直嫌ッス。とりあえず自分メモで。

  • 基本手続きという事は eval-dispatch で振り分けるソレ??
  • 振り分けた後は
    • compile->assemble したリストを val にセットして
    • initialize-stack して
    • env に get-global-environment セットして
    • continue に print-result セットして
    • (goto (reg val))
    • eceval の中で compile->assemble できるかどうか
    • assemble と statements と compile が eceval-operatios に追加されてれば OK ??

む。assemble には machine 渡さんとイカんのですが this ってないしなぁ。あ、でも eceval ってグローバルなシンボルなのかなぁ。てーことは compile->assemble なんていう手続きを作って eceval-operations に追加しておけばなんとかなりそげ??
でもこれだと翻訳系のインターフェースは無傷なのかどうなのか。