VM/GCを作る。

2週間のんびりrowl-coreを作っていましたが、大体出来上がってきました。LISPもどきのインタプリタです。非常に雑な実装(識別子テーブルとか関数コールとか)ですが、使い捨てなのでこれでいいです。

さて、次の作業はVMGCの作成です。本当はパーサ作ったり型システム作ったりする方が楽しいのですが、土台を固めます。
とりわけ現状ではGCが無く、一回確保したメモリはexit()時まで解放されないという実装になっています。これだといずれ大きなプログラムのコンパイル時にメモリ不足になる可能性があるのでGCを作ります。

  • VM
    • スタックマシンとして作る
    • 実装が簡単だから
    • 後の世代でレジスタマシンにする
  • GC
    • 考え中

実装方法は

という感じです。