На яких мовах написані компілятор Java ( javac
), віртуальна машина (JVM) та java
стартер?
На яких мовах написані компілятор Java ( javac
), віртуальна машина (JVM) та java
стартер?
Відповіді:
Точне формулювання питання трохи вводить в оману: це не "JVM" чи "компілятор" оскільки є кілька постачальників JVM (jrockit - один, IBM - інший) та кілька компіляторів .
Sun JVM буде написаний в C
, хоча це не обов'язково так - JVM , як вона працює на вашому комп'ютері є платформо-залежним виконуваний файл і , отже , може бути написана на будь-якій мові. Наприклад, оригінальний IBM JVM був написаний у Smalltalk
Бібліотеки Java ( java.lang
, і java.util
т.д., часто називають в API Java ) самі написані на Java, хоча методи , помічені як native
буде написано в C
або C++
.
Я вважаю, що компілятор Java, наданий Sun, також написаний на Java. (Хоча знову є кілька компіляторів)
Найперший компілятор Java був розроблений компанією Sun Microsystems і був написаний на C, використовуючи деякі бібліотеки з C ++. Сьогодні компілятор Java написаний на Java, тоді як JRE - у C.
Ми можемо уявити, як компілятор Java був написаний на Java так:
Компілятор Java пишеться як програма Java, а потім компілюється з компілятором Java, написаним на C (перший компілятор Java). Таким чином, ми можемо використовувати щойно складений компілятор Java (написаний на Java) для компіляції програм Java.
Від Java Docs
Компілятор написаний на Java, а час виконання - ANSI C
Насправді Oracle JVM написаний на С ++, а не на С.
Подивіться код JVM HotSpot тут: http://openjdk.java.net/groups/hotspot/
Це посилання має відповісти на ваше запитання
Здається, компілятор зараз написаний на Java, але час виконання написано в ANSI C
Jikes RVM , JVM, який самостійно розміщує, широко використовується для наукових цілей, написаний на Java. Це не той, хто працює на своїх робочих столах, але це там, у моєму списку, «тепер давайте покажемо загальну силу мови».
Припустимо, що ви говорите про JVM Hotspot, який надається Sun, він написаний на C ++. Для отримання додаткової інформації про різні віртуальні машини для Java, ви можете перевірити це посилання . javac , як і більшість компіляторів Java, написаний на Java.
(Для отримання додаткової інформації ви можете переглянути це посилання: https://docs.oracle.com/javase/specs/jvms/se7/html/ )