OCaml を用いてパーサコンビネータやコンパイラを自作していた
(GitHub) 0918nobita/psycheOCaml で自作言語 Psyche のコンパイラを作成していました。
ターゲットは WebAssembly (バイナリ形式) です。名前束縛 (let), 関数定義と WASM モジュールでのエクスポートを実装し、フィボナッチ数を求める関数が定義できるようになりました。
OCaml の関数型プログラミング言語としての性質を活かしたパーサコンビネータの実装について深く知る機会になりました。
また、WASM の命令の仕様について深く知るため、仕様書を読んだり既存の WASM バイナリを逆アセンブルして解析したりしていました。