我试图理解将 java 实现为抽象机或虚拟机的真正优势,或者换句话说,将语言编译为抽象机语言的优势。就平台独立性而言,我正在考虑以下两种替代实现:
只是有一个解释器,它可以将 java 直接翻译成它正在运行的机器的机器代码,并且对于不同类型的机器有多个这样的解释器实现。
第一个选项在空间上效率不高,那么如何将源代码编译为一种中间语言,这种语言不是抽象机器的语言,而只是可以解释为机器代码的某种语言,然后具有此类解释器的多个实现。
如果不考虑性能,那么拥有抽象机器与这些选项相比如何。换句话说,如果 java 字节码不是虚拟机的语言,而只是某种中间语言会怎样。会失去哪些特性和好处(性能除外)?