MazuCC微型C编译器
Mazucc 是一个最低限度的C编译器,具有x86_代码生成功能。它旨在支持部分C99语言功能,同时尽可能保持代码的小和简单。灵感来自于 8cc。
构建
$ make
MazuCC 包含单元测试,使用如下命令进行测试:
$ 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 系统,则可忽略 --no-pie 参数
参考输出:
Q . . . . . . .
. . . . Q . . .
. . . . . . . Q
. . . . . Q . .
. . Q . . . . .
. . . . . . Q .
. Q . . . . . .
. . . Q . . . .
你也可以查看内部抽象语法树
echo 'struct {int x; char y; struct { int t; } z; } a;' | ./mzcc --dump-ast
输出内容:
(decl (struct (int)
(char)
((struct (int)))) a)
评论
UCC国产开源C编译器
ucc是一款遵从ANSIC89标准的编译器,大约15,000行C代码。目前支持x86平台上的Linux和Windows系统,能正确编译自身并成功运行。它有下面一些特点:代码结构清晰直观,有比较详细的中
UCC国产开源C编译器
0
8cc小型的 C 编译器
8cc是一个小型的C编译器,它旨在支持所有C11语言功能,同时使代码尽可能的小而简单。编译器可以自行编译。您可以将其代码视为C语言的实现,以及该编译器可以编译的示例。8cc的源代码经过精心编写,以尽可
8cc小型的 C 编译器
0
wieldylccC编译器 c++编译器
用c++重构了lcc源代码,去掉了lcc中支持多种处理器的模式,仅支持x86一种。项目目标是编译器的源代码是易于理解的,编译出的asm文件也是易于理解的。目前项目状态是完成了lcc源代码向c++的改造
wieldylccC编译器 c++编译器
0
langcc新一代的编译器编译器
langcc是一个工具,它以标准BNF风格的格式获取语言的形式化描述,并自动生成一个编译器前端,包括语言的抽象语法树(AST)和遍历的数据结构定义、一个词典、一个解析器和一个pretty-printe
langcc新一代的编译器编译器
0