关于最早的C语言编译器其诞生与C语言本身的发展紧密相关并经历了一个从低级语言到“自举”的关键过程。最初的实现语言世界上第一个C语言编译器并非用C语言本身编写而是由C语言的前身——B语言以及PDP-11汇编语言共同实现的。在1973年左右丹尼斯·里奇Dennis Ritchie和肯·汤普逊Ken Thompson在贝尔实验室开发Unix操作系统时为了重写系统内核需要一种更高效的工具。他们基于B语言由Ken Thompson开发并结合PDP-11的汇编语言编写了第一个C语言编译器的原型。12“自举”Bootstrapping的关键突破为了摆脱对汇编语言的依赖开发者们采用了一种称为“自举”的递推方法。具体步骤如下步骤一先用汇编语言实现一个仅包含C语言最核心功能的极小子集称为C0的编译器。步骤二使用这个C0编译器来编译一个用C语言C0的扩展称为C1编写的、功能更强大的新编译器。步骤三重复此过程逐步增加语言功能C2, C3...最终用C语言自身编写出一个功能完整的C编译器。这一过程证明了高级语言可以通过其有限子集实现自我构建是计算机科学史上的一个重要里程碑。12早期的编译器实例在GCC等现代编译器出现之前还有其他早期的C编译器。例如可移植C编译器pcc 由史蒂芬·强生在1970年代中期于贝尔实验室开发因其设计上与机器相关的代码比例较低而具有良好的可移植性并曾作为BSD Unix的默认编译器。4 此外Whitesmiths C编译器是20世纪70年代末出现的最早的商业C编译器之一。5综上所述最早的C语言编译器是1973年左右用B语言和PDP-11汇编语言编写的随后通过“自举”技术迅速被用C语言自身编写的编译器所取代。1https://baike.baidu.com/item/C%2FC%2B%2B%E7%BC%96%E8%AF%91%E5%99%A8/16142634https://zhuanlan.zhihu.com/p/693132914