是否所有代码都转换为机器代码?

Does all code get converted into machine code?

对于计算机上运行的程序,是否必须将代码转换为机器码以便CPU可以运行呢? 这是怎么发生的?

哇!这需要很多解释。 :D 首先,像人类这样的机器有自己的语言,所以我们可以简单地说,如果你想让计算机像你说的那样工作,你必须用它的语言说出来:)

但是您可能听说过编译和解释: 编译:将(程序)转换成机器代码或程序可以执行的低级形式。

所以基本上这意味着当程序员决定他们完成编程时,代码代码将被转换为其他东西,如可执行文件。所以如果你用记事本看一个.exe文件,你不能简单地理解任何东西。并且为 windows 编译的代码无法在 Mac.

上执行

解释:代码将在运行时由另一个程序转换。所以代码直到最后几秒都是人类可读的。例如,如果您右键单击该页面并 select "view page source",您可以看到为该页面生成的 HTML 代码。这意味着代码灵活,可以像您看到的那样在不同的机器上工作,您可以在 Mac、windows 或 chrome、firefox 或 IE 等不同的浏览器上看到相同的页面但是这样会比编译慢很多。

我们在实践中做了什么?

我们将我们的代码编译成一种中间语言,这种语言可以被特定于每台机器的虚拟机理解。

我举个例子解释一下。比方说有人想在联合国发表演讲让我们用中文说。

如果他把他所有的演讲都翻译成不同的语言,然后给人看,那就是编译。

如果他说话,有人在线将他的话翻译成法语、英语等,那就是口译。但这很糟糕,你可能找不到任何人为多种语言做这件事

如果他在演讲之前将它的翻译版本(如英文版本)提供给翻译人员,他们可以阅读它并在演讲者发言时说成不同的语言,那么这就是我们现在所做的:D

您可以在此处阅读更多内容:Runtime vs Compile time