数日前からCコンパイラを書き始めた。(GitHub) 植山類さんのオンラインブック、低レイヤを知りたい人のためのCコンパイラ作成入門を読みながら、概ね本の内容に沿って進めている。 自分の書いたコンパイラで自身をコンパイルするセルフホストを目指している。 コンパイラというのはある言語で書かれたプログラムを別の言語に変換するプログラムだ。 ここではC言語をアセンブリに変換するものを指している。 いきなりC言語をコンパイルするのは無理なので、徐々に複雑な入力を受け付けるように改良し、最終的にC言語を受け付けるようにする(したい)。 最初は入力をそのまま出力することから始まり、四則演算ができるようになり、いまは関数呼び出しができるようになった。 本はとても丁寧に書かれていて、参考として実装も2種類ほど存在する。 さらにSlackやYoutube Liveで質問ができるというとても恵まれた環境が揃っ
![数日前からCコンパイラを書き始めた。 - memo.yammer.jp](https://cdn-ak-scissors.b.st-hatena.com/image/square/59f64fac46873d58d35a033e0c8ff72b400d36e6/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fbasd4g%2Fimage%2Fupload%2Fco_rgb%3A505050%2Cl_text%3ASawarabi%2520Gothic_64_align_center%3A%25E6%2595%25B0%25E6%2597%25A5%25E5%2589%258D%25E3%2581%258B%25E3%2582%2589C%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2591%25E3%2582%25A4%25E3%2583%25A9%25E3%2582%2592%25E6%259B%25B8%25E3%2581%258D%25E5%25A7%258B%25E3%2582%2581%25E3%2581%259F%25E3%2580%2582%2Cw_800%2Cc_fit%2Fv1620733120%2Fmemo-yammer-jp.png)