Я пытаюсь понять реальное преимущество реализации Java как абстрактной или виртуальной машины или, другими словами, преимущество компиляции языка в язык для абстрактной машины. Что касается независимости от платформы, я думал о следующих двух альтернативных реализациях:
просто иметь интерпретатор, который переводит java непосредственно в машинный код машины, на которой он работает, и иметь несколько реализаций такого интерпретатора для разных типов. машины.
первый вариант неэффективен в пространстве, так как насчет того, чтобы скомпилировать исходный код на промежуточный язык, который не является языком для абстрактной машины, а просто какой-то язык, который можно интерпретировать в машинный код, а затем иметь несколько реализаций таких интерпретаторов .
Если не принимать во внимание производительность, как соотносится наличие абстрактной машины с этими вариантами. Другими словами, что, если байт-код java — это не язык для виртуальной машины, а просто некий промежуточный язык. Какие функции и преимущества будут потеряны (кроме производительности)?