Cコンパイラといえばとてつもなく複雑なプログラムというイメージがあります。ところが、このCコンパイラを(サブセットとはいえ)わずか500行ほどのCのソースコードで実現した「CC500」名付けられたプログラムが公開されています。 ソースコードは可読性を維持するためにつけられた空行やコメントを含めると、実際は750行ほどになるそうですが、それでもこれだけコンパクトなソースコードで実行可能なELFバイナリ(Linux用のバイナリ)を生成できるのは興味深いのではないでしょうか。 以下実際にLinuxでコンパイルしてみました。 自己コンパイルできる このコンパイラはC言語のサブセットで、自分自身のソースコードをコンパイルできるところがおもしろいところです。まず「cc500_1」という実行ファイルを生成します。 gcc cc500.c -o cc500_1 生成された実行ファイル「cc500_1」を使
![わずか500行のCソースコードで作られたCコンパイラ「CC500」 | ソフトアンテナ](https://cdn-ak-scissors.b.st-hatena.com/image/square/eec7058b605f7f985c4a78742577b4791d2552f6/height=288;version=1;width=512/https%3A%2F%2Fsoftantenna.com%2Fblog%2Fwp-content%2Fuploads%2F2014%2F11%2FIbinary-system-63526_640.jpg)