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

时间:2016-10-18 23:27:24

标签: compilation runtime interpreter machine-code

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

1 个答案:

答案 0 :(得分:2)

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

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

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

解释:代码将由运行时中的另一个程序转换。所以代码是人类可读的,直到最后几秒。就像右键单击此页面并选择“查看页面源”一样,您可以看到为此页面生成的HTML代码。这意味着代码具有灵活性,可以在不同的机器上工作,就像你看到的那样,你可以在Mac,windows或不同的浏览器上看到相同的页面,如chrome,firefox或IE,但它会比编译慢很多。 / p>

我们在实践中做了什么?

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

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

如果他将他的所有演讲翻译成不同语言并将其交给人们,那就是编译。

如果他说话,有些人在网上将他的文字翻译成法语,英语等,那就是解释。但它很糟糕,你可能找不到任何人为许多语言做这件事

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

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