MazuCC微型C編譯器
Mazucc 是一個(gè)最低限度的C編譯器,具有x86_代碼生成功能。它旨在支持部分C99語言功能,同時(shí)盡可能保持代碼的小和簡單。靈感來自于 8cc。
構(gòu)建
$ make
MazuCC 包含單元測(cè)試,使用如下命令進(jìn)行測(cè)試:
$ make check
MazuCC 支持 GNU/Linux 和 MacOS
使用 MazuCC 編譯 C 代碼
$ ./mzcc < sample/nqueen.c
將生成 AT&T 語法格式的 x86_64 匯編:
$ ./mzcc < sample/nqueen.c > sample/nqueen.s $ gcc -no-pie -o sample/nqueen sample/nqueen.s
如果是 MacOS 系統(tǒng),則可忽略 --no-pie 參數(shù)
參考輸出:
Q . . . . . . .
. . . . Q . . .
. . . . . . . Q
. . . . . Q . .
. . Q . . . . .
. . . . . . Q .
. Q . . . . . .
. . . Q . . . .
你也可以查看內(nèi)部抽象語法樹
echo 'struct {int x; char y; struct { int t; } z; } a;' | ./mzcc --dump-ast
輸出內(nèi)容:
(decl (struct (int)
(char)
((struct (int)))) a)評(píng)論
圖片
表情
