In quale lingua sono scritti il compilatore Java e JVM?


In quali lingue è il compilatore Java (javac), la macchina virtuale (JVM) e lo starter java scritti?

Author: user2418306, 2009-08-03

9 answers

Il fraseggio preciso della domanda è leggermente fuorviante: non è "la JVM" o "il compilatore"come ci sono più fornitori di JVM (jrockit è uno, IBM un altro) e più compilatori là fuori.

  • La JVM Sun è scritta in C, anche se questo non deve essere il caso - la JVM mentre gira sulla tua macchina è un dipendente dalla piattaforma eseguibile e quindi potrebbe essere stato originariamente scritto in qualsiasi lingua. Ad esempio, la JVM IBM originale è stata scritta in Smalltalk

  • Le librerie Java(java.lang, java.util etc, spesso indicato come l'API Java ) sono essi stessi scritti in Java, anche se i metodi contrassegnati come native saranno stati scritti in C o C++.

  • Credo che anche il compilatore Java fornito da Sun sia scritto in Java. (Anche se di nuovo, ci sono più compilatori là fuori)

 149
Author: oxbow_lakes, 2009-08-03 12:26:32

Da Documenti Java

Il compilatore è scritto in Java e il runtime è scritto in ANSI C

 58
Author: Sev, 2016-03-06 22:26:12

Il primo compilatore Java è stato sviluppato da Sun Microsystems ed è stato scritto in C utilizzando alcune librerie da C++. Oggi, il compilatore Java è scritto in Java, mentre il JRE è scritto in C.

Possiamo immaginare come il compilatore Java sia stato scritto in Java in questo modo:

Il compilatore Java è scritto come un programma Java e poi compilato con il compilatore Java scritto in C(il primo compilatore Java). Quindi possiamo usare il compilatore Java appena compilato (scritto in Java) per compilare Java programma.

 54
Author: shrinath, 2017-10-06 02:34:19

In realtà la JVM Oracle è scritta in C++, non in C.

Dai un'occhiata al codice JVM HotSpot qui: http://openjdk.java.net/groups/hotspot /

 14
Author: UrbenLegend, 2012-02-29 22:36:40

Questo link dovrebbe rispondere alla tua domanda

Sembra che il compilatore sia ora scritto in Java, ma il runtime è scritto in ANSI C

 9
Author: micmoo, 2015-04-03 10:34:39

In linea di principio quasi tutto, di solito C

 8
Author: djna, 2009-08-03 06:44:57

Jikes RVM , una JVM self-hosting ampiamente utilizzata per scopi di ricerca è scritta in Java. Non è quello che le persone corrono sui loro desktop, ma è lassù nella mia lista di "ora mostriamo il potere generale della lingua."

 3
Author: Sam Harwell, 2009-08-03 06:46:57

Supponendo che tu stia parlando della JVM Hotspot, che è iirc fornito da Sun, è scritto in C++. Per ulteriori informazioni sulle varie macchine virtuali per Java, è possibile controllare questo link . javac , come la maggior parte dei compilatori Java, è scritto in Java.

 3
Author: Michael Foukarakis, 2009-08-03 06:51:38

La maggior parte dei sistemi operativi, JVM sono scritti in ISO C++. Dubito che ANSI C sia usato, un linguaggio completamente diverso che al giorno d'oggi è piuttosto antiquato.

 -2
Author: Mickey, 2010-10-08 13:14:36