我想了解解释器是如何使用和执行字节码的。如果我们以Python为例,它会生成字节码,然后解释它。我想知道解释器是如何使用字节码指令集并执行它们的。
例如:
>>> def test():
... print " hello"
...
>>> dis.dis(test)
2 0 LOAD_CONST 1 (' hello')
3 PRINT_ITEM
4 PRINT_NEWLINE
5 LOAD_CONST 0 (None)
8 RETURN_VALUE 现在,我如何解释这个字节码指令并执行它呢?
发布于 2013-07-29 22:27:13
Python使用计算循环来执行字节码。具体实现见ceval.c (C语言)。
如果您想自己从Python中解释字节码指令,则需要深入了解每条指令应该做什么,以及在哪里找到管理其执行的数据结构。例如,这里的LOAD_CONST 1从附加到函数的代码对象加载索引为1的常量,并将其放入堆栈,PRINT_ITEM获取顶部堆栈值,将其转换为字符串并将其写入sys.stdout。
https://stackoverflow.com/questions/17926604
复制相似问题