Gni*_*ohz 5 c performance programming-languages
人们总是说 C 比任何其他高级语言都更高效。我不明白为什么。我知道汇编是高效的,因为它与机器语言有密切的关系。
但是 C 和 C++ 或 ruby,可以说,它们都会被“翻译”成机器语言,对吗?更高效,是否意味着机器代码更好,或者“翻译”成机器代码所需的时间更少?如果有一些编译器或解释器可以产生更快的速度,并且产生更好的机器代码怎么办?
小智 5
我知道汇编是高效的,因为它与机器语言有密切的关系。
不,不是的。它具有 1.1 关系 - 它是精确机器代码命令的书面表示。它是一种助记语言——基本上用另一种表示形式替换字节码。所有高级语言都忽略了这一点。
但是 C 和 C++ 或者 ruby,比如说,它们都会被“翻译”成机器语言,对吧?
是的,但问题是何时以及如何有效。低级语言(C 就是其中之一)允许不太高级的构造,因此更接近汇编语言,并且更容易让编译器优化。
更高效,是否意味着机器代码更好,或者“翻译”成机器代码所需的时间更少?
除了及时编译的语言或解释器之外,没有人关心翻译需要多少时间。C 静态翻译一次,然后执行。
如果有一些编译器或解释器可以更快地生成更好的机器代码怎么办?
那么这个说法是不正确的。有趣的是,事实并非如此——为高级语言制作一个超级高效的编译器并不容易。基本上,你一直在问为什么超级跑车这么快,并表示当每辆菲亚特熊猫都拥有更多马力时,它就不会再被认为这么快了——但遗憾的是他们没有,也永远不会有。