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