<分区>
人们总是说 C 比其他任何高级语言都更有效率。我不明白为什么。我知道汇编是高效的,因为它与机器语言有着密切的关系。
但是 C 和 C++ 或 ruby,比方说,它们都将被“翻译”成机器语言,对吗?效率更高,是否意味着机器代码更好,或者“翻译”成机器代码所需的时间更少?如果有一些编译器或解释器可以更快地产生更好的机器码呢?
<分区>
人们总是说 C 比其他任何高级语言都更有效率。我不明白为什么。我知道汇编是高效的,因为它与机器语言有着密切的关系。
但是 C 和 C++ 或 ruby,比方说,它们都将被“翻译”成机器语言,对吗?效率更高,是否意味着机器代码更好,或者“翻译”成机器代码所需的时间更少?如果有一些编译器或解释器可以更快地产生更好的机器码呢?
最佳答案
I know assembly is efficient because it has a close relation to machine language.
不,它没有。它有一个 1.1 关系——它是精确机器代码命令的书面表示。它是一种助记语言 - 基本上用另一种表示形式替换字节码。所有高级语言都忽略了这一点。
But c and c++ or ruby,let say,they are all gonna be 'translated' into machine language,right?
是的,但问题是何时以及如何有效。低级语言 - C 是一种 - 允许不太高级的构造,因此更接近汇编程序,编译器更容易优化。
By more efficient,does it mean the machine code is better,or it takes less time to be 'translated' into machine code?
除了即时编译语言或解释器之外,没有人关心翻译需要多少时间。 C 静态翻译一次,然后执行。
What if there is some compiler or interpreter that can produce faster,with better machine code?
那么这个说法是不正确的。有趣的是,事实并非如此——为高级语言制作一个超高效的编译器并不容易。基本上,您一直在问为什么 super 跑车的速度如此之快,并说当每辆菲亚特 Pandas 都拥有更大的马力时,它就不会再被认为是那么快了——但遗憾的是,他们没有,也永远不会拥有。
关于c - 为什么人们说 C 更有效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9375678/