На каком языке написана компилятор Java и JVM?

В каких языках используется Java-компилятор (javac), пишут виртуальную машину (JVM) и стартер java?

Ответ 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.

Ответ 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 используется, совершенно другой язык, который в настоящее время довольно устарел.