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