C++ で VM 実装中 その2 - Scheme VM を書く
淡々と実装。
R6RS のライブラリを VM でサポートするには VM 自身がコンパイラを内蔵している必要がある。
しかしながら現在ではコンパイラは外にあるので、VM 自身でコンパイラが動くようになるまではライブラリは使えないことに。(具体的には import インストラクション時にコンパイラが必要になる)
しょうがないので R5RS のように全てトップレベルで処理するようにして VM を 90% ほど完成させてからライブラリシステムを実装しよう。
今日の作業。
- 不完全ではあるが write を実装
- format を実装
- eq-hash-table を実装(中身は std::map という手抜き)
- インストラクション
- CLOSURE
- DEFINE_GLOBAL