05|分支语句:控制流让程序具备基本的运算能力
海纳
你好,我是海纳。
上一节课,我们让虚拟机成功地加载并执行了标准 Python3.8 版本的字节码,我知道你已经迫不及待想继续实现对象系统,以支持整数和字符串等更多的数据类型了。但只实现完备的对象系统并不能让虚拟机看上去功能更加强大,而控制流却可以让我们做更多的测试,例如,支持了分支和循环语句以后,就可以实现一个计算 fibonacci 数列的程序。所以我们决定实现了控制流之后,再重新思考对象系统。
典型的两种控制流结构是分支选择和循环结构,这节课我们先研究分支语句是如何实现的。
分支语句
为了研究 Python 字节码是如何表达分支结构的,我们先创建一个包含分支语句的测试文件。
使用以下命令,把上述文件编译成 pyc 文件。
然后通过 show_file.py 查看这个文件结构,得到如下结果:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. 分支语句是控制流结构之一,通过分支选择和循环结构可以实现更多的测试和功能,如计算 fibonacci 数列的程序。 2. 通过分析 Python 字节码的实现,可以了解分支结构的具体实现方式,包括 COMPARE_OP、POP_JUMP_IF_FALSE 和 JUMP_FORWARD 等字节码的作用和参数含义。 3. 实现比较指令时,需要为每种比较操作提供相应的方法,并使用虚函数进行修饰,以实现各个对象的比较方式。 4. 实现跳转功能时,需要对程序计数器进行干预,使其指向期望的地址,从而实现控制流的跳转功能。 5. 分支结构所需的字节码包括 COMPARE_OP、POP_JUMP_IF_FALSE 和 JUMP_FORWARD,通过实现这些字节码可以完成分支结构的功能。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手写 Python 虚拟机》,新⼈⾸单¥59
《手写 Python 虚拟机》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论