CPU对解释器的作用是什么?

时间:2013-08-08 16:26:58

标签: compiler-construction cpu interpreter

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

我知道在解释器的情况下,它将高级程序的第一行转换为某种东西(这是什么东西?它是机器级语言吗?)然后某些东西被执行并运行(由解释器执行和运行)还是由CPU?)。之后它会进入下一行代码,依此类推。

简而言之,在解释器的情况下,我对CPU的作用感到困惑。

2 个答案:

答案 0 :(得分:2)

编译语言和解释语言之间的CPU没有区别。采取相同的步骤将源代码转换为CPU理解的东西 - 这只是的问题。

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

事实上,编译语言和解释语言之间甚至没有硬性区别。例如,考虑Java,它是从源代码到字节代码提前编译的。在运行时,JVM再次解释该字节代码,并且可以通过JIT进一步编译和优化。

答案 1 :(得分:0)

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