gcc的具体历史记录见第GCC Wiki页.更一般的一点是,编译器通常最初是与其他编译器一起编译的,直到它们强大到可以自己编译为止.或者,也可以编写一个基本的编译器,可以在汇编程序中处理功能的子集,并从中构建.但再一次,这几乎再也不需要了.有很多可用的编译器,有多种语言.即使在斯蒂芬·约翰逊(Stephen Johnson)编写pcc(最早的C编译器之一)时,也有针对B的编译器,以及许多其他语言.gcc最初有几个编译器可供 Select 来构建它,RMS说他至少在最初的开发过程中使用了Pastel编译器.
请记住,C编译器不需要用C编写.如果愿意,可以用Perl编写.不要求给定平台的编译器最初在该平台上编写(嵌入式系统几乎总是在其他系统上编译).因此,有很多方法可以让你self 激励.
这个问题有一些与 bootstrap 编译器的第一个实例相关的有趣的微妙之处.如果你很聪明,你可以利用那条自助线跑something incredible, brilliant and terrifying英里.