低レイヤを知りたい人のためのCコンパイラ作成入門(以降「低レイヤ」)を参考にして作り始めたCコンパイラがようやくセルフホスティングできるようになったので、 今までの経験をメモしておく。 リポジトリはこちら:https://github.com/tyfkda/xcc 動機XV6という学習用OSをひとまず使えるものにしたいなぁと思っていて、Cコンパイラが動けばXV6上で開発できるようになるのでぜひとも動かしたいと思っていた。 しかし既存のソースだとCからアセンブリを出力するだけで、アセンブラやリンカはgccを使うとかしていることが多くて、そのままだと動かすのが難しいのではないかと思っていた。 「低レイヤ」もその方式なんだけど、それを直接バイナリを出力する方法で実装したらできるのではないかと、始めてみた。 進め方「低レイヤ」では最初に整数1個をコンパイルできるだけというミニマルな状態から始めて、