低レイヤを知りたい人のためのCコンパイラ作成入門を参考に作った、C(のサブセットの)コンパイラです。
現在使える主な機能は次のとおりです。
- for,if,whileなどの基本構文
- 変数、一次元配列、ポインタ(int/char)
- 関数定義/呼び出し
- +-/*などの基本的な演算
- 多次元配列
より詳しくはtest/test*.c
、examples/*.c
をご覧ください。
次の機能はこれから実装する予定です。
- 構造体
- ブロックスコープ
$ make
$ ./9cc path/to/your/code > asm.s
$ gcc -static -o prog asm.s
$ ./prog
または
$ make
$ ./run.sh path/to/your/code
- 9bf.c : brain*uckのインタプリタ
- sudoku.c : 数独ソルバ
- fib.c : 再帰によってフィボナッチ数列を求めるプログラム