Зачем нужна виртуальная машина Java? Один из них может запускать коды, написанные на других языках, без использования их виртуальной машины, в то время как Java требует JVM для запуска кода. Почему у нас есть виртуальная машина для Java, тогда как для других популярных языков, таких как C++ или python, такой виртуальной машины не требуется?Почему нет виртуальной машины для других языков, в отличие от Java?
ответ
Виртуальная машина Java означает, что Java-код запускается на каждом компьютере с правильной версией виртуальной машины на нем.
Между тем программы, написанные на других языках, которые не запускаются на виртуальной машине, могут нуждаться в разных компиляциях кода для работы в разных операционных системах.
Основная причина заключается в том, что java можно запускать на любом os, который может загрузить jvm, и он будет работать так же, как на вашем компьютере.
Java - это, пожалуй, самый популярный язык на основе виртуальных машин, но он никоим образом не является единственным воображением. В .NET Framework используется другая виртуальная машина. Ни один из языков, ориентированных на .NET Framework, не имеет такого доминирующего положения в этой области, как Java с JVM, но многие люди используют эти языки без каких-либо иных целей, кроме как писать код для платформы .NET.
Исторически сложилось, что на самом деле существует довольно много языков, основанных на виртуальной машине. Возможно, самой известной независимой от платформы виртуальной машиной до Java был USCD P-system, который, вероятно, наиболее широко использовался на компьютерах серии Apple II, но также был доступен для ПК. Некоторые игры, такие как Wizardry, которые были основаны на P-системе и первоначально опубликованы для Apple, были позже выпущены для ПК; версии для ПК таких игр велись почти так же, как и версии Apple, поскольку они выполняли почти тот же код.
LOLOLOLOLOLOLOLOL –
http://en.wikipedia.org/wiki/HipHop_for_PHP – ceejayoz
В большинстве приложений требуется среда выполнения, которая поддерживает язык, например. 'libc' или' MVCxxx.DLL'. Хотя вы можете скомпилировать C таким образом, чтобы не требовалась внешняя библиотека, это редко делается за пределами встроенных систем. –