В каких языках используется Java-компилятор (javac
), пишут виртуальную машину (JVM) и стартер java
?
На каком языке написана компилятор Java и JVM?
Ответ 1
Точная формулировка вопроса немного вводит в заблуждение: это не "JVM" или "компилятор", поскольку существуют несколько поставщиков JVM (jrockit - это один, другой IBM) и несколько компиляторов.
-
Sun JVM записывается в
C
, хотя этого не должно быть - JVM, поскольку он работает на вашем компьютере, является исполняемым на платформе исполняемым файлом и, следовательно, может быть изначально написан на любом языке. Например, оригинальная IBM JVM была написана в Smalltalk -
Библиотеки Java (
java.lang
,java.util
и т.д., часто называемые Java API) сами записываются на Java, хотя методы, помеченные какnative
, будут записаны вC
илиC++
. -
Я считаю, что компилятор Java, предоставляемый Sun, также написан на Java. (Хотя, опять же, есть несколько компиляторов)
Ответ 2
Из Java Docs
Компилятор написан на Java и среда выполнения написана в формате ANSI C
Ответ 3
Самый первый компилятор Java был разработан Sun Microsystems и написан на C, используя некоторые библиотеки из С++. Сегодня компилятор Java написан на Java, а JRE написан на C.
Мы можем представить, как Java-компилятор был написан на Java следующим образом:
Компилятор Java написан как программа Java, а затем скомпилирован с помощью компилятора Java, написанного на C (первый компилятор Java). Таким образом, мы можем использовать компилируемый Java-компилятор (написанный на Java) для компиляции программ Java.
Ответ 4
Собственно, JVM Oracle написан на С++, а не на C.
Взгляните на JVM-код HotSpot здесь: http://openjdk.java.net/groups/hotspot/
Ответ 5
Эта ссылка должна ответить на ваш вопрос
Кажется, компилятор теперь написан на Java, но среда выполнения написана в ANSI C
Ответ 6
В принципе почти что угодно, обычно C
Ответ 7
Jikes RVM, самообслуживающая JVM, широко используемая для исследовательских целей, написана на Java. Это не тот человек, который работает на своих рабочих столах, но он находится там в моем списке "теперь давайте хвастаться общей властью языка".
Ответ 8
Предположим, что вы говорите о JVM Hotspot, который является iirc, предоставленным Sun, он написан на С++. Для получения дополнительной информации о различных виртуальных машинах для Java вы можете проверить эту ссылку . javac, как и большинство компиляторов Java, написан на Java.
Ответ 9
Большинство ОС, JVM написаны в ISO С++. Я сомневаюсь, что ANSI C используется, совершенно другой язык, который в настоящее время довольно устарел.