4
为什么VM需要是“堆栈计算机”或“注册计算机”等?
(这是一个极其新手的问题)。 我一直在研究有关虚拟机的知识。 事实证明,其中许多设计与物理或理论计算机非常相似。 例如,我读到JVM是一个“堆栈机”。这意味着(如果我错了,请纠正我)是它将所有的“临时内存”存储在堆栈中,并对所有操作码在该堆栈上进行操作。 例如,源代码2 + 3将被转换为类似于以下内容的字节码: push 2 push 3 add 我的问题是这样的: JVM可能是使用C / C ++等编写的。如果是这样,JVM为什么不执行以下C代码:2 + 3..?我的意思是,为什么它需要堆栈,或在其他虚拟机“寄存器”中(例如在物理计算机中)? 底层的物理CPU负责所有这些工作。VM编写者为什么不使用VM编程所使用的语言简单地使用“通常”指令执行解释后的字节码? 当实际的硬件已经为我们做到了时,为什么虚拟机需要仿真硬件? 同样,非常新手的问题。谢谢你的帮助