0

我知道编译器采用高级语言,将所有语言翻译成机器语言(或者首先是汇编语言,然后是机器语言?),发送到 CPU,现在 CPU 的工作就是实际运行它并显示输出/做任何事情。

我知道在解释器的情况下,它将高级程序的第一行翻译成某种东西(这是什么东西?它是机器级语言吗?)然后某些东西被执行和运行(由解释器或由中央处理器 ?)。之后它转到下一行代码,依此类推。

所以简而言之,在解释器的情况下,我对 CPU 的作用有点困惑。

4

2 回答 2

2

编译语言和解释语言之间的 CPU 没有区别。采用相同的步骤将源代码转换为 CPU 可以理解的内容——这只是时间问题

对于编译语言,这是提前完成的。对于解释型语言,它发生在运行时。

事实上,编译语言和解释语言之间甚至没有严格的区别。以 Java 为例,它提前从源代码编译为字节码。在运行时,该字节码由 JVM 再次解释,并且可以由 JIT 进一步编译和优化。

于 2013-08-08T16:30:38.660 回答
0

这是一个非常明智的问题。答案是灰色阴影。这完全取决于解释器中内置了多少运行时环境。运行时必须存储变量等的状态,但它可能会按照您的建议执行并将程序的一行转换为机器代码,然后执行该代码。另一方面,它可能使用更高级别的内部表示来执行代码并调用运行该代码的进程。例如 Python 和 Ruby 生成它们自己的内部代码表示,然后传递给运行时。Java 是一个编译器,但将整个程序转换为字节码,然后由运行时执行。所以没有一个简单的黑白答案,但这是帮助理解正在发生的事情的正确问题。

于 2013-08-08T16:34:17.973 回答