Cコンパイラをセルフホストするまで写経した話

RuiUeyamaさんのリポジトリを写経してたらセルフホスト達成したので記念記事を書きます。

私のコンパイラはこれ

github.com

参考にしたものはこれ

github.com

chibiccやprivateなリポジトリなど

www.sigbus.info

オンラインブックはもうなんか、すごい。
コンパイラ作成第一歩って感じがすごい。
コンパイラ作りて〜って思ったらこれ読めって感じがすごい。

はじめに

本来100学べるところを5くらいしか学べていないので、正直なところあまり成長できていません。
その中でも学べたところをアウトプットしようと思っていたのですが、少し前に別の方がセルフホストをした記事をqiitaにてアップされていました。
自身との理解の深さの違いに、完成後にもかかわらず自己嫌悪に陥っています...
なので...

もう一度コンパイラ作ります!!

反省とかできたところはまた二作目が一作目をコンパイルできるようになったら、書こうかなと思います。
言語はRustでいこうと思っています(断念する可能性有)
今までRust使ったことないので不安ですが、言語について学びながら言語処理についても学んでいこうと思います。

それでも少しだけ成長した部分

アセンブリが少しだけ読めるようになった。
仕様書と実装をにらめっこして "ふんふん" といいながら理解してる感を出せるようになった。
c言語の知らない仕様だったり、使ったことのない機能を知ることができた。

他にも有りそうですが、ざっと書いたらこんなもんですね。
学びの少なさを感じる。

最後に

今回一応セルフホスト達成したわけですが、これは一度忘れます。
プログラミング&コンパイラ作り初心者として、初歩の初歩から頑張ります。