MazuCC
1.0.0
MazuCC는 x86_64 코드 생성 기능을 갖춘 미니멀리스트 C 컴파일러입니다. 코드를 가능한 한 작고 단순하게 유지하면서 부분적인 C99 언어 기능을 지원하기 위한 것입니다.
make를 실행하여 빌드합니다.
$ make
MazuCC에는 단위 테스트가 포함되어 있습니다. 테스트를 실행하려면 "check"를 인수로 제공하십시오.
$ make check
MazuCC는 GNU/Linux와 macOS 모두에서 작동하는 것으로 알려져 있습니다.
MazuCC를 사용하여 C 소스를 컴파일합니다.
$ ./mzcc sample/nqueen.c
또는 MazuCC는 표준 입력의 스트림을 받아들입니다. 위 명령의 동등한 형식은 다음과 같습니다.
$ cat sample/nqueen.c | ./mzcc -
AT&T 구문으로 생성된 x86_64 어셈블리를 얻게 됩니다. 출력을 어셈블하여 유효한 실행 파일로 연결할 수 있습니다.
$ ./mzcc -o sample/nqueen.s sample/nqueen.c
$ gcc -no-pie -o sample/nqueen sample/nqueen.s
MazuCC를 macOS에서 컴파일하고 실행하는 경우 위의 -no-pie
인수를 제거해야 합니다.
MazuCC 컴파일 sample/nqueen
의 참조 출력:
Q . . . . . . .
. . . . Q . . .
. . . . . . . Q
. . . . . Q . .
. . Q . . . . .
. . . . . . Q .
. Q . . . . . .
. . . Q . . . .
또는 내부 추상 구문 트리를 덤프할 수 있습니다.
echo ' struct {int x; char y; struct { int t; } z; } a; ' | ./mzcc --dump-ast -
S-표현식 형식의 예상 출력은 다음과 같습니다.
(decl (struct (int)
(char)
((struct (int)))) a)
MazuCC는 8cc에서 많은 영감을 받았습니다.
MazuCC는 BSD 2 조항 라이선스에 따라 무료로 재배포 가능합니다. 이 소스 코드의 사용은 LICENSE 파일에 있는 BSD 스타일 라이센스에 의해 관리됩니다.