c - gcc C 编译器是用 C 本身编写的吗?

标签 c gcc compiler-construction

gcc C 编译器是用 C 本身编写的吗?还是用 Assembly 写的?如果编译器是用C写的,那么用什么编译器来编译编译代码?

最佳答案

gcc 的具体历史在 GCC Wiki 中给出。 .更一般的一点是,编译器通常最初是用其他一些编译器编译的,直到它们强大到足以编译自己。或者,可以编写一个基本的编译器来处理汇编器中的部分功能,并从那里构建。但同样,这几乎不再需要了。有很多可用的编译器,支持多种语言。即使在 Stephen Johnson 编写 pcc(最早的 C 编译器之一)时,也有适用于 B 的编译器以及许多其他语言。 gcc 最初有几个编译器可供选择来构建它,RMS 说他至少在最初的开发过程中使用了 Pastel 编译器。

请记住,不要求 C 编译器必须用 C 编写。如果您愿意,可以用 Perl 编写。不要求给定平台的编译器最初是在该平台上编写的(嵌入式系统几乎总是在其他系统上编译)。因此,有很多方法可以让您自力更生。

这个问题有一些与引导编译器的第一个实例相关的有趣的微妙之处。如果你很聪明,你可以利用那个 Bootstrap 来做 something incredible, brilliant and terrifying .

关于c - gcc C 编译器是用 C 本身编写的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5657454/

相关文章:

无法理解这个 union

c - 如何在 C for Linux 中将非 ASCII 字符压缩为 1 个字节?

iphone - 即时创建 *.docx(也许还有 *.doc?)文档?

c - 为什么 sizeof 类型与整数比较返回 false

c - 如何使用 _Generic 定义通用函数以在 C 中接受输入?

linux - Makefile 中的变量泄漏

c - 数组 typedef 结构在被函数调用时无法正常工作

编译 GitHub 上找到的编译器

linux - Qt4 静态编译和奇怪的错误发生在它们甚至不应该存在之前

c# - 从 Microsoft .net 调用单声道 c# 代码?