かねてよりJITコンパイラに興味があったので、実装してみました。 今回はフィボナッチ数を計算する関数に絞って、これを高速化することを考えます。 リポジトリ 対象のコード 独自言語ですが、まあ説明は不要でしょう。 再帰関数になっているfib関数を高速化します。 fun fib(n) do if (n == 0) do return 1; end if (n == 1) do return 1; end return fib(n - 1) + fib(n - 2); end インタープリターを作る まずは普通にインタープリターを作ります。今回はZig言語を使ってみることにしました。 (Zig歴がまだ3日くらいの頃に書いているので、コードは拙いです) 中身はただの、LexerとParserとEvaluatorを組み合わせただけのものです。 そして書いたインタープリターのパフォーマンスを計測してみ
