处理器的最低要求是什么才能为其编写 C 编译器?
What are the minimum requirements for a processor so that a C compiler can be written for it?
我很好奇处理器应该支持的绝对最小指令,以便可以针对它编写标准 C 编译器。这些要求是什么?
答案出奇的简单。任何 Turing complete 机器都可以模拟任何其他图灵机,可以为它们编写 C 编译器的机器是图灵完备的,因此它们可以被任何图灵机模拟。
C 标准中的 I/O 非常模糊,因此它不需要持久化,从外部可见,甚至不需要做 return 错误以外的任何事情,所以这不是必需的。与时间相关的函数也是如此(我没有全部看过,也许有例外)。
所以理论上你可以拥有一个对 C 来说足够强大的 single instruction computer。顺便说一句,大多数其他编程语言也是如此。没有 I/O 不是很有用,但足够了。
严格来说,真正的物理计算机不是图灵完备的,因为它们没有无限内存,但它们足够接近,我们眯着眼睛假装它是同一件事。
我很好奇处理器应该支持的绝对最小指令,以便可以针对它编写标准 C 编译器。这些要求是什么?
答案出奇的简单。任何 Turing complete 机器都可以模拟任何其他图灵机,可以为它们编写 C 编译器的机器是图灵完备的,因此它们可以被任何图灵机模拟。
C 标准中的I/O 非常模糊,因此它不需要持久化,从外部可见,甚至不需要做 return 错误以外的任何事情,所以这不是必需的。与时间相关的函数也是如此(我没有全部看过,也许有例外)。
所以理论上你可以拥有一个对 C 来说足够强大的 single instruction computer。顺便说一句,大多数其他编程语言也是如此。没有 I/O 不是很有用,但足够了。
严格来说,真正的物理计算机不是图灵完备的,因为它们没有无限内存,但它们足够接近,我们眯着眼睛假装它是同一件事。