復活のCHRISTMA

この記事はクリスマスワンナイトハッカソン2021の作品紹介記事です

やったこと

二年前のワンナイトハッカソンフレキシブル基板達が作っていた素晴らしい言語『CHRISTMA』のソースコードLLVM IRに変換するやつを作った

qiita.com

IRというのは中間表現で、他の言語からLLVM IRに変換するプログラムを「LLVMのフロントエンド」って言うらしい(あってる?)

やりかた

  1. BrainfuckWikipediaを読む
  2. 各命令をC言語に脳内変換して書く
  3. ↑のプログラムをLLVM IRにコンパイルする(clangを使った。最適化オプションに注意)
  4. 気合と集合知の力でBrainfuckLLVM IRのコンパイラを書く

既存のコンパイラに小さな入力を食わせて出てきたものを見てコンパイラを書く、みたいなのはCコンパイラを作ったときにもやった気がする
調べると全く同じことをやっている記事がQiitaにあったけど見なかったことにした
見たら負けな気がする

最終的には世界に挨拶できるくらいにはなった(他のことを試していない)
挨拶って大事だと思う

できたもの

これを

mainファイルの中のCHRISTMAプログラム(ヒアドキュメント)

こうして

出力される.llファイル

こう

実行結果

ソースコードはここ

github.com

おわりに

これで私もフロントエンドエンジニア。