素朴な自作言語のコンパイラをTypeScript(Deno)に移植した


移植一覧に戻る


TypeScript 入門というか、とりあえず何か書いて慣れようと思って書いてみました。やっつけなので汚いです。TypeScript まだよく分からないけどなんか動いたのでヨシ、というレベルのものです。

github.com

移植元

memo88.hatenablog.com

<自作言語処理系(Ruby版)の説明用テンプレ>

自分がコンパイラ実装に入門するために作った素朴なトイ言語とその処理系です。

何ヶ月もかけてCコンパイラを作るのが「100 の労力で 100 の成果を得る」だとしたら、このプロジェクトは「まず 5 の労力で 20 の成果を得よう」みたいな方向性です。得られるものは 100 ではありませんが短期間で完成させることができます。

<説明用テンプレおわり>

ベースになっているバージョン: tag:45 のあたり

メモ

  • YAML/JSON ライブラリへの依存をなくしてみた
    • vge コードは YAML ではなく簡単な独自フォーマットにして自力でパースするようにした
      • 単に行ごとに読んで文字列か数かを判別できればよい
    • vgt コード(JSON)も自力でパースしてみた
  • Ruby 版で作った出力データがすでにあるので、 それに一致するように未実装部分を潰していくだけ。 ゼロから作っていた Ruby 版のときに比べたら遥かに楽。
  • 今回もなんとなく VMアセンブラ → コード生成器 → パーサ の順で作ってしまって、インクリメンタルな作り方を試せばかったな……と作り終わってから思った