解释器直接执行代码是什么意思?

时间:2015-11-17 09:30:44

标签: python interpreter execution

我已经读过这句话,解释器直接执行代码。但我不确定我明白这意味着什么。我一直试图在python代码的执行周期上得到一篇很好的文章。

据我所知,python代码转换为字节代码并提供给解释器。接下来会发生什么?有人可以清楚地解释其中的步骤,特别是字节码,解释器,操作系统和CPU之间的关系吗?

有些事情......

  1. OS在主内存中加载python解释器
  2. CPU获取指令并执行ALU。更新内存等。
  3. 为了清晰起见而编辑:我的基本困惑是,如果CPU正在执行代码,那么说法是什么意思'解释器执行代码'?

2 个答案:

答案 0 :(得分:1)

这一声明在整个过程中挥舞着巨大的声音。这是怎么回事,试着跟上:

  1. Python代码为lexedparsedabstract syntax tree(AST)。
  2. AST translated进入Python bytecode
  3. Python字节码加载到Python virtual machine
  4. Python虚拟机读取字节码并调用本机函数,因为字节码需要/指定。
  5. CPU永远不会将字节码视为除数据之外的任何内容,并且不需要以任何其他方式查看它。

答案 1 :(得分:0)

直接执行代码意味着解释器不会将解释的程序表示为机器代码,然后允许实际的机器执行它。相反,解释器本身执行指令(有或没有转换为某种字节码)。

从技术上讲,机器执行解释程序的代码,但事实上仍然没有生成新的机器代码。

对比方法是静态编译的代码(转换为机器代码,无需进一步解释)和JIT(可选转换为字节码,在运行时将字节码或文本程序转换为机器代码,允许机器执行)。