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

Compilation 所有代码是否都转换为机器代码?,compilation,runtime,interpreter,machine-code,Compilation,Runtime,Interpreter,Machine Code,对于要在计算机上运行的程序,是否必须将代码转换为机器代码,以便CPU能够运行它? 这是怎么发生的?哇!这需要很多解释D 首先,像人类这样的机器有自己的语言,所以我们可以简单地说,如果你想让计算机按你说的那样工作,你必须用它的语言来表达:) 但你可能听说过编译和口译: 编译:将(一个程序)转换成机器代码或低级形式,程序可以在其中执行 因此,基本上这意味着当程序员决定他们已经完成了编程时,代码将被转换成其他的东西,比如一个可执行文件。所以,如果你用记事本查看一个.exe文件,你不能简单地理解任何事情

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

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

但你可能听说过编译和口译: 编译:将(一个程序)转换成机器代码或低级形式,程序可以在其中执行

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

解释:代码将在运行时由另一个程序转换。因此,代码在最后几秒钟之前是人类可读的。就像右键单击此页面并选择“查看页面源代码”一样,您可以看到为此页面生成的HTML代码。这意味着代码非常灵活,可以在不同的机器上工作,如您所见,您可以在Mac、windows或不同浏览器(如chrome、firefox或IE)上看到相同的页面,但这将比编译慢得多

我们在实践中做什么

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

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

如果他把所有的演讲都翻译成不同的语言并发给人们,那就是编译

如果他说话,有些人在网上把他的话翻译成法语、英语等,那就是口译。但这很糟糕,而且你可能找不到任何人用多种语言来做这件事

如果他在演讲之前给翻译人员一个翻译版本(比如英语版本),他们可以在演讲人讲话时阅读并用不同的语言说,那么这就是我们现在所做的:D


您可以在这里阅读更多内容:

这是它的主要工作原理,但情况并非总是如此。有时代码不是直接在硬件上运行的,而是由另一个程序——解释器——来解释,它运行实际的机器代码。哇,这比我想象的要复杂得多。@DeathSwagga不知道人们为什么给你负面评价。可能是因为你问了一个非常宽泛的问题,但我不确定:)或者标签。@DeathSwagga很好,你的问题得到了2个肯定点,这意味着你得到了10分:)可能是标签。@DeathSwagga如果你认为你从我的帖子中得到了答案,请将其标记为答案并投票支持,以便其他人将来可以使用它