虚拟机II:控制
在计算机编程领域,虚拟机(VM)的概念和实现是至关重要的。之前我们已经了解了虚拟机的基本概念以及如何实现算术 - 逻辑命令和推/弹(push/pop)命令。现在,我们将深入探讨虚拟机的分支命令和函数命令,以及如何将基本的虚拟机翻译器扩展为一个完整的虚拟机翻译器。
运行时系统
每个计算机系统都必须指定一个运行时模型,这个模型要回答一系列关键问题,例如如何启动程序执行、程序终止时计算机应做什么、如何在函数间传递参数、如何为运行中的函数分配内存资源以及如何释放不再使用的内存资源等。在相关编程体系中,这些问题通过虚拟机语言规范以及在特定平台上的标准映射来解决。如果按照这些指南开发虚拟机翻译器,就能实现一个可执行的运行时系统。
高级语言的魅力
高级语言允许以高级术语编写程序,例如可以使用接近自然描述的方式来表达数学表达式。高级语言的基本语法包含像 + 和 - 这样的原始操作,同时还允许通过自定义函数(如 sqrt 和 power)来扩展语言。这种无限扩展语言的能力是高级编程语言的重要特性之一。
在函数调用方面,通常调用函数(调用者)会向被调用函数(被调用者)传递参数,并暂停自身执行,直到被调用者完成执行并返回一个值(可能为空),然后调用者恢复执行。在这个过程中,需要处理一系列的开销,包括保存返回地址、保存调用者的内存资源、为被调用者分配内存资源等。不过,高级程序员通常无需考虑这些细节,因为编译器生成的汇编代码会高效地处理这些任务。
分支命令
计算机程序的默认执行流程是顺序执行,但可以通过分支命令改变执行流程。在低级编程中,分支通常通过 goto 命令实现,其目标地址可以是物理内存地址或符号标签。 </
超级会员免费看
订阅专栏 解锁全文

1729

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



