10、虚拟机 II:控制

虚拟机控制详解与实现

虚拟机 II:控制

在计算机编程领域,虚拟机(VM)是一个关键概念,它允许我们在抽象层面上处理程序,而不必直接与硬件交互。本文将深入探讨虚拟机的分支命令和函数命令的使用与实现,以及如何构建一个完整的虚拟机到 Hack 汇编语言的翻译器。

1. 运行时系统

每个计算机系统都需要一个运行时模型,它回答了程序运行所必需的问题,如如何启动程序执行、程序终止时计算机应做什么、如何在函数间传递参数、如何分配和释放内存资源等。在相关编程体系中,这些问题通过 VM 语言规范和 Hack 平台的标准映射来解决。如果按照这些指南开发 VM 翻译器,就能实现一个可执行的运行时系统。

2. 高级编程的魅力

高级语言允许我们以高级术语编写程序,例如复杂的表达式可以用简洁的代码表示。高级语言的重要特性之一是可以随意扩展语言,如 sqrt power 等函数。虽然这些函数需要有人实现,但应用程序员只需假设它们能执行并返回控制即可。

函数是模块化编程的核心,调用函数时,需要处理一系列开销,包括保存返回地址、保存调用者的内存资源、分配被调用者所需的内存资源、传递参数并启动被调用者的代码。被调用者返回时,也需要处理相应的开销,如传递返回值、回收被调用者的内存资源、恢复调用者的内存资源等。幸运的是,高级程序员无需考虑这些细节,编译器生成的汇编代码会高效处理这些任务。

3. 分支命令

计算机程序的默认执行流程是顺序的,但可以通过分支命令改变流程。在低级编程中,分支通过 goto 命令实现,目标可以是物理内存地址或符号标签。VM 语言支持两种

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值