虚拟机 II:控制
在计算机编程领域,虚拟机(VM)是一个关键概念,它允许我们在抽象层面上处理程序,而不必直接与硬件交互。本文将深入探讨虚拟机的分支命令和函数命令的使用与实现,以及如何构建一个完整的虚拟机到 Hack 汇编语言的翻译器。
1. 运行时系统
每个计算机系统都需要一个运行时模型,它回答了程序运行所必需的问题,如如何启动程序执行、程序终止时计算机应做什么、如何在函数间传递参数、如何分配和释放内存资源等。在相关编程体系中,这些问题通过 VM 语言规范和 Hack 平台的标准映射来解决。如果按照这些指南开发 VM 翻译器,就能实现一个可执行的运行时系统。
2. 高级编程的魅力
高级语言允许我们以高级术语编写程序,例如复杂的表达式可以用简洁的代码表示。高级语言的重要特性之一是可以随意扩展语言,如 sqrt 和 power 等函数。虽然这些函数需要有人实现,但应用程序员只需假设它们能执行并返回控制即可。
函数是模块化编程的核心,调用函数时,需要处理一系列开销,包括保存返回地址、保存调用者的内存资源、分配被调用者所需的内存资源、传递参数并启动被调用者的代码。被调用者返回时,也需要处理相应的开销,如传递返回值、回收被调用者的内存资源、恢复调用者的内存资源等。幸运的是,高级程序员无需考虑这些细节,编译器生成的汇编代码会高效处理这些任务。
3. 分支命令
计算机程序的默认执行流程是顺序的,但可以通过分支命令改变流程。在低级编程中,分支通过 goto 命令实现,目标可以是物理内存地址或符号标签。VM 语言支持两种
虚拟机控制详解与实现
超级会员免费看
订阅专栏 解锁全文
1729

被折叠的 条评论
为什么被折叠?



