这个问题可能源于我对编译器的误解,但这里......
您可以在 K&R 第一版(第 xi 页)的前言中找到以下声明:
操作系统、C 编译器和基本上所有的 UNIX 应用程序(包括用于编写本书的所有软件)都是用 C 编写的。
(我的重点)
这是我不明白的:在编译任何 C 代码之前,C 编译器是否必须自己编译?如果那个 C 编译器是用 C 编写的,那么编译它不需要已经存在的 C 编译器吗?!
解决这个无限回归难题(或先有鸡还是先有蛋的问题)的唯一方法是,K&R 所指的用 C 语言编写的 C 编译器实际上是用已经存在的 C 编译器编译的,该编译器是用非 C 语言编写的. 用 C 编写的 C 编译器随后取代了后者。
还是我完全关闭了?