首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解释器如何使用和执行字节码

解释器如何使用和执行字节码
EN

Stack Overflow用户
提问于 2013-07-29 22:25:49
回答 1查看 121关注 0票数 0

我想了解解释器是如何使用和执行字节码的。如果我们以Python为例,它会生成字节码,然后解释它。我想知道解释器是如何使用字节码指令集并执行它们的。

例如:

代码语言:javascript
复制
>>> 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        

现在,我如何解释这个字节码指令并执行它呢?

EN

回答 1

Stack Overflow用户

发布于 2013-07-29 22:27:13

Python使用计算循环来执行字节码。具体实现见ceval.c (C语言)。

如果您想自己从Python中解释字节码指令,则需要深入了解每条指令应该做什么,以及在哪里找到管理其执行的数据结构。例如,这里的LOAD_CONST 1从附加到函数的代码对象加载索引为1的常量,并将其放入堆栈,PRINT_ITEM获取顶部堆栈值,将其转换为字符串并将其写入sys.stdout

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17926604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档