この記事はクリスマスワンナイトハッカソン2021の作品紹介記事です
やったこと
二年前のワンナイトハッカソンでフレキシブル基板達が作っていた素晴らしい言語『CHRISTMA』のソースコードをLLVM IRに変換するやつを作った
IRというのは中間表現で、他の言語からLLVM IRに変換するプログラムを「LLVMのフロントエンド」って言うらしい(あってる?)
やりかた
- BrainfuckのWikipediaを読む
- 各命令をC言語に脳内変換して書く
- ↑のプログラムをLLVM IRにコンパイルする(clangを使った。最適化オプションに注意)
- 気合と集合知の力でBrainfuck→LLVM IRのコンパイラを書く
既存のコンパイラに小さな入力を食わせて出てきたものを見てコンパイラを書く、みたいなのはCコンパイラを作ったときにもやった気がする
調べると全く同じことをやっている記事がQiitaにあったけど見なかったことにした
見たら負けな気がする
最終的には世界に挨拶できるくらいにはなった(他のことを試していない)
挨拶って大事だと思う
できたもの
これを
こうして
こう
ソースコードはここ
おわりに
これで私もフロントエンドエンジニア。