加载中...

栈式虚拟机(Stack-based VM)是一种以操作数栈为中心的虚拟机架构:指令从栈顶取操作数、把结果压回栈顶,指令本身几乎不带操作数地址,如 JVM 的 iadd 弹出两数相加再压栈。
寄存器式虚拟机(如 Lua 5 及以后、Android 曾用的 Dalvik)在指令中显式编码虚拟寄存器号。栈式指令更短、字节码紧凑、编译器生成代码简单;寄存器式指令条数更少、减少压栈弹栈的调度开销,解释执行通常更快,但单条指令更长。
JVM、CPython、.NET CLR、WebAssembly 均采用栈式设计;WebAssembly 进一步用结构化控制流约束栈行为以便快速验证。
对配备 JIT 的运行时,字节码架构差异会在编译为机器码后被抹平,因此栈式的简单性与紧凑性常成为首选。

登录 后参与讨论
暂无讨论,来发表第一条评论吧