解释器直接执行代码是什么意思?
What does it mean the interpreter directly executes code?
我读过解释器直接执行代码的说法。但我不确定我明白这意味着什么。一直想找一篇关于python代码执行周期的好文章。
我了解到 python 代码被转换为字节码并提供给解释器。那么接下来会发生什么?有人可以清楚地解释其中的步骤,特别是字节码、解释器、OS 和 CPU 之间的关系吗?
类似于...
- OS 在主内存中加载 python 解释器
- CPU 取出指令并执行 ALU。更新内存..等
为清楚起见进行了编辑: 我的基本困惑是,如果 CPU 是执行代码的内容,那么说 'the interpreter executes the code' 是什么意思?
直接执行代码意味着解释器不将解释的程序表示为机器代码,然后让实际机器执行它。相反,解释器自己执行指令(有或没有转换为某种字节码)。
从技术上讲,机器执行解释器的代码,但事实是从未生成过新的机器代码。
对比的方法是静态编译代码(翻译成机器码,不需要进一步解释)和JIT(可选翻译成字节码,在运行时将字节码或文本程序翻译成机器码,让机器执行)。
该声明是对整个过程的大力支持。事情是这样的,努力跟上:
- Python 代码是 lexed and parsed into an abstract syntax tree (AST).
- AST 是 translated into Python bytecode。
- Python 字节码被加载到 Python virtual machine.
- Python虚拟机读取字节码并调用本机函数作为字节码requires/specifies。
CPU 从不将字节码视为数据,它不需要以任何其他方式看待它。
我读过解释器直接执行代码的说法。但我不确定我明白这意味着什么。一直想找一篇关于python代码执行周期的好文章。
我了解到 python 代码被转换为字节码并提供给解释器。那么接下来会发生什么?有人可以清楚地解释其中的步骤,特别是字节码、解释器、OS 和 CPU 之间的关系吗?
类似于...
- OS 在主内存中加载 python 解释器
- CPU 取出指令并执行 ALU。更新内存..等
为清楚起见进行了编辑: 我的基本困惑是,如果 CPU 是执行代码的内容,那么说 'the interpreter executes the code' 是什么意思?
直接执行代码意味着解释器不将解释的程序表示为机器代码,然后让实际机器执行它。相反,解释器自己执行指令(有或没有转换为某种字节码)。
从技术上讲,机器执行解释器的代码,但事实是从未生成过新的机器代码。
对比的方法是静态编译代码(翻译成机器码,不需要进一步解释)和JIT(可选翻译成字节码,在运行时将字节码或文本程序翻译成机器码,让机器执行)。
该声明是对整个过程的大力支持。事情是这样的,努力跟上:
- Python 代码是 lexed and parsed into an abstract syntax tree (AST).
- AST 是 translated into Python bytecode。
- Python 字节码被加载到 Python virtual machine.
- Python虚拟机读取字节码并调用本机函数作为字节码requires/specifies。
CPU 从不将字节码视为数据,它不需要以任何其他方式看待它。