MazuCC es un compilador de C minimalista con generación de código x86_64. Su objetivo es admitir funciones parciales del lenguaje C99 manteniendo el código lo más pequeño y simple posible.
Ejecute make para construir:
$ make
MazuCC viene con pruebas unitarias. Para ejecutar las pruebas, dé "verificar" como argumento:
$ make check
Se sabe que MazuCC funciona tanto en GNU/Linux como en macOS.
Utilice MazuCC para compilar código fuente C:
$ ./mzcc sample/nqueen.c
Alternativamente, MazuCC acepta la transmisión desde la entrada estándar. La forma equivalente del comando anterior es:
$ cat sample/nqueen.c | ./mzcc -
Obtendrá el ensamblado x86_64 generado en la sintaxis de AT&T. La salida se puede ensamblar y vincular a un ejecutable válido:
$ ./mzcc -o sample/nqueen.s sample/nqueen.c
$ gcc -no-pie -o sample/nqueen sample/nqueen.s
Si MazuCC se compila y ejecuta en macOS, se debe eliminar el argumento anterior -no-pie
.
Salida de referencia de sample/nqueen
compilado por MazuCC:
Q . . . . . . .
. . . . Q . . .
. . . . . . . Q
. . . . . Q . .
. . Q . . . . .
. . . . . . Q .
. Q . . . . . .
. . . Q . . . .
Alternativamente, puedes volcar el árbol de sintaxis abstracta interna:
echo ' struct {int x; char y; struct { int t; } z; } a; ' | ./mzcc --dump-ast -
El resultado esperado en forma de expresión S:
(decl (struct (int)
(char)
((struct (int)))) a)
MazuCC está fuertemente inspirado en 8cc.
MazuCC se puede redistribuir libremente bajo la licencia de cláusula BSD 2. El uso de este código fuente se rige por una licencia estilo BSD que se puede encontrar en el archivo LICENCIA.