【发布时间】:2016-01-22 01:15:39
【问题描述】:
在与朋友的一次争论中,我说不可能用除 C 之外的任何语言编写一个比 C 中的所有变体更快的程序,它做同样的事情.我的论点是基于对以下问题的肯定回答。是真的吗?
- 如果我们将“编译”视为从 [C 程序] 到 [汇编程序] 的映射,那么这个映射是否是满射的?
警告:当然,您可以在 C 程序中包含汇编,但假装这是不可能的(提出一个更有趣的问题!)。
【问题讨论】:
-
这个问题跑题了。请阅读help center,了解哪些类型的问题被视为主题。
-
这似乎是在问“你能打败编译器吗?”。答案几乎总是“是”。 C编译器很好,尤其是。在比人类精神上可以跟踪的更大范围内进行优化(多层次的内联/简化)。它们很少是最佳的。为了打败编译器,从它的输出开始,寻找保存指令的地方或使用更好的指令序列,尤其是。在一个循环中。
-
这个意见的依据是什么?这个问题可能很差而且离题,但不是因为这个原因。如果问题是:在 C 语言中
2+2是否总是等于4?,这是否也是基于意见的?
标签: c assembly compilation