MazuCC เป็นคอมไพเลอร์ C แบบมินิมอลที่มีการสร้างโค้ด x86_64 มีวัตถุประสงค์เพื่อรองรับคุณสมบัติภาษา C99 บางส่วนในขณะที่รักษาโค้ดให้เล็กและเรียบง่ายที่สุด
เรียกใช้ make เพื่อสร้าง:
$ make
MazuCC มาพร้อมกับการทดสอบหน่วย หากต้องการรันการทดสอบ ให้ "ตรวจสอบ" เป็นอาร์กิวเมนต์:
$ make check
เป็นที่รู้กันว่า MazuCC ทำงานได้ทั้งบน GNU/Linux และ macOS
ใช้ MazuCC เพื่อคอมไพล์ซอร์ส C:
$ ./mzcc sample/nqueen.c
อีกทางหนึ่ง MazuCC ยอมรับสตรีมจากอินพุตมาตรฐาน รูปแบบที่เทียบเท่าสำหรับคำสั่งข้างต้นคือ:
$ cat sample/nqueen.c | ./mzcc -
คุณจะได้รับแอสเซมบลี x86_64 ที่สร้างขึ้นในรูปแบบไวยากรณ์ของ AT&T เอาต์พุตสามารถประกอบและเชื่อมโยงเข้ากับไฟล์ปฏิบัติการที่ถูกต้องได้:
$ ./mzcc -o sample/nqueen.s sample/nqueen.c
$ gcc -no-pie -o sample/nqueen sample/nqueen.s
หาก MazuCC ได้รับการคอมไพล์และดำเนินการบน macOS อาร์กิวเมนต์ข้างต้น -no-pie
ควรถูกกำจัดออกไป
เอาต์พุตอ้างอิงของ sample/nqueen
ที่คอมไพล์โดย MazuCC :
Q . . . . . . .
. . . . Q . . .
. . . . . . . Q
. . . . . Q . .
. . Q . . . . .
. . . . . . Q .
. Q . . . . . .
. . . Q . . . .
หรือคุณสามารถดัมพ์แผนผังไวยากรณ์นามธรรมภายในได้:
echo ' struct {int x; char y; struct { int t; } z; } a; ' | ./mzcc --dump-ast -
ผลลัพธ์ที่คาดหวังในรูปแบบ S-expression:
(decl (struct (int)
(char)
((struct (int)))) a)
MazuCC ได้รับแรงบันดาลใจอย่างมากจาก 8cc
MazuCC สามารถแจกจ่ายต่อได้อย่างอิสระภายใต้สิทธิ์การใช้งานมาตรา BSD 2 การใช้ซอร์สโค้ดนี้อยู่ภายใต้ใบอนุญาตสไตล์ BSD ซึ่งสามารถพบได้ในไฟล์ใบอนุญาต