β変換 その4 - Scheme VM を書く

今日は苦戦した。粘って結論は出たが、そこにたどり着く時間の長さと効率の悪さが微妙。


S式 -> IForm の変換時に決定しておいて良いもの

  • 参照の種類 (bind/local/global/free)
  • クロージャの自動変数の列挙
    • 最適化でクロージャが丸ごとなくなる場合はどうすればよいだろうか?
  • set!(代入)される変数の列挙
    • set! される変数が最適化で消えることは「現時点では」ありえない


IForm -> VM インストラクション変換時に決定しないと困るもの

  • let で作られた変数の参照位置
  • let で作られた変数の代入位置