Min-Caml (https://github.com/esumii/min-caml) 向けの自作コンパイラです。 (いちおうフルスクラッチですが、だいたいの大筋は元のやつに従っています)
Min-Camlのソースコードをnasm向けのアセンブリにコンパイルするコンパイラです。 可能なコンパイル先は、
- x86 Linux
- x86 Windows
- tortesia
です。 tortesia というのはCPU実験での自班のアーキテクチャです。 tortesia2x86.py をかますとnasm用のx86アセンブリになります。
例えばlinuxの場合、
$ (cd src; make)
$ ./scripts/compile_exec.sh ../tes.ml [ソースコード名]
とするとコンパイル → 実行ができます。
- 授業課題のあれやこれが既に実装されている
- type_check や knorm や closure での抽象構文表現のためのヴァリアントをシンプルにした
- 各アーキ(といってもx86とtortesiaだけなのだけれど)の表現をvirtualまでまとめて、最後のemitで分けるようにした