jvm的抽象机器概念

vja*_*n27 7 java jvm vm-implementation

我试图理解将java实现为抽象或虚拟机的真正优势,或者换句话说,将语言编译为抽象机器的语言的优势.就平台独立性而言,我正在考虑以下两种替代实现:

  • 只是有一个解释器,它直接将java转换为运行它的机器的机器代码,并为不同类型的机器提供多个这种解释器的实现.

  • 第一个选项在空间方面效率不高,那么如何将源代码编译为中间语言,这种语言不是抽象机器的语言,而只是一些可以解释为机器代码然后具有这种解释器的多个实现的语言.

如果不考虑性能如何将抽象机器与这些选项进行比较.换句话说,如果java字节代码不是虚拟机的语言而只是一些中间语言会怎么样.哪些功能和优点会丢失(性能除外)?

mic*_*667 5

字节码只是一种中间语言.

或者反过来说:中间语言的实现是虚拟机.