8cc:小型C编译器

时间:2024-03-12 18:49:35
【文件属性】:

文件名称:8cc:小型C编译器

文件大小:98KB

文件格式:ZIP

更新时间:2024-03-12 18:49:35

C

8cc C编译器 注意:8cc不再是活动项目。 后继者是。 8cc是用于C编程语言的编译器。 它旨在支持所有C11语言功能,同时使代码尽可能的小而简单。 编译器可以自行编译。 您可以将其代码视为C语言的实现,以及该编译器可以编译的示例。 8cc的源代码经过精心编写,以使其尽可能简洁和易于阅读,从而使该源代码成为学习编译器中使用的各种技术的良好学习材料。 您可能会发现词法分析器,预处理器和解析器对于了解如何在每个阶段处理C源代码已经很有用。 它不是一个优化的编译器。 生成的代码通常比GCC慢2倍或更多。 我计划在将来实现合理的优化水平。 8cc仅支持x86-64 Linux。 在修复所有已知的错误编译并实现优化通过之前,我没有计划使其可移植。 从2015年起,我将Ubuntu 14用作开发平台。 不过,它应该可以在其他x86-64 Linux发行版上运行。 注意:不要对此编译器抱


【文件预览】:
8cc-master
----set.c(1KB)
----debug.c(10KB)
----.gitignore(37B)
----buffer.c(3KB)
----Makefile(2KB)
----utiltest.c(5KB)
----8cc.h(9KB)
----LICENSE(1KB)
----file.c(4KB)
----vector.c(2KB)
----keyword.inc(2KB)
----map.c(3KB)
----parse.c(80KB)
----README.md(3KB)
----encoding.c(3KB)
----include()
--------stdarg.h(1KB)
--------stdbool.h(202B)
--------8cc.h(1KB)
--------iso646.h(321B)
--------stdalign.h(226B)
--------stdnoreturn.h(147B)
--------stddef.h(318B)
--------float.h(1KB)
----cpp.c(28KB)
----gen.c(41KB)
----lex.c(17KB)
----HACKING.md(1KB)
----error.c(1KB)
----main.c(6KB)
----test()
--------macro2.h(88B)
--------includeguard3.h(133B)
--------once.h(141B)
--------line.c(542B)
--------bitop.c(684B)
--------generic.c(3KB)
--------function.c(3KB)
--------includeguard2.h(94B)
--------constexpr.c(284B)
--------includeguard.c(1KB)
--------float.c(3KB)
--------initializer.c(4KB)
--------assign.c(813B)
--------funcargs.c(3KB)
--------usualconv.c(527B)
--------typeof.c(634B)
--------includeguard5.h(130B)
--------noreturn.c(236B)
--------scope.c(233B)
--------ast.sh(4KB)
--------includeguard7.h(70B)
--------negative.py(8KB)
--------conversion.c(408B)
--------literal.c(3KB)
--------extern.c(226B)
--------enum.c(339B)
--------builtin.c(704B)
--------cast.c(537B)
--------arith.c(2KB)
--------macro.c(9KB)
--------struct.c(7KB)
--------comp.c(816B)
--------decl.c(770B)
--------test.h(917B)
--------global.c(797B)
--------pointer.c(2KB)
--------import.c(382B)
--------union.c(690B)
--------import.h(137B)
--------control.c(5KB)
--------oldstyle.c(523B)
--------staticassert.c(219B)
--------testmain.c(2KB)
--------includeguard1.h(118B)
--------lex.c(1KB)
--------varargs.c(2KB)
--------stmtexpr.c(241B)
--------sizeof.c(2KB)
--------includeguard6.h(138B)
--------includeguard4.h(124B)
--------array.c(1024B)
--------type.c(2KB)
--------iso646.c(555B)
--------int.c(638B)
--------align.c(1KB)
--------number.c(701B)
--------macro1.h(146B)
----path.c(1KB)
----dict.c(479B)

网友评论