In welchen Sprachen sind der Java- Compiler ( javac
), die virtuelle Maschine (JVM) und der java
Starter geschrieben?
In welchen Sprachen sind der Java- Compiler ( javac
), die virtuelle Maschine (JVM) und der java
Starter geschrieben?
Antworten:
Die genaue Formulierung der Frage ist leicht irreführend: Es handelt sich nicht um "die JVM" oder "den Compiler", da es mehrere JVM-Anbieter (Jrockit ist einer, IBM ein anderer) und mehrere Compiler gibt.
Die Sun-JVM ist geschrieben C
, obwohl dies nicht der Fall sein muss. Die JVM, wie sie auf Ihrem Computer ausgeführt wird, ist eine plattformabhängige ausführbare Datei und könnte daher ursprünglich in einer beliebigen Sprache geschrieben worden sein. Beispielsweise wurde die ursprüngliche IBM JVM in Smalltalk geschrieben
Die Java - Bibliotheken ( java.lang
, java.util
usw., die oft als bezeichnet die Java API ) sind selbst in Java geschrieben, obwohl sie als markierte Methoden native
werden in geschrieben wurden , C
oder C++
.
Ich glaube, dass der von Sun bereitgestellte Java-Compiler auch in Java geschrieben ist. (Obwohl es wieder mehrere Compiler gibt)
Der allererste Java-Compiler wurde von Sun Microsystems entwickelt und mit einigen Bibliotheken aus C ++ in C geschrieben. Heute ist der Java-Compiler in Java geschrieben, während die JRE in C geschrieben ist.
Wir können uns vorstellen, wie der Java-Compiler wie folgt in Java geschrieben wurde:
Der Java-Compiler wird als Java-Programm geschrieben und dann mit dem in C (dem ersten Java-Compiler) geschriebenen Java-Compiler kompiliert. Somit können wir den neu kompilierten Java-Compiler (in Java geschrieben) verwenden, um Java-Programme zu kompilieren.
Aus Java Docs
Der Compiler ist in Java und die Laufzeit in ANSI C geschrieben
Eigentlich ist die Oracle JVM in C ++ geschrieben, nicht in C.
Sehen Sie sich hier den HotSpot JVM-Code an: http://openjdk.java.net/groups/hotspot/
Dieser Link sollte Ihre Frage beantworten
Es scheint, dass der Compiler jetzt in Java geschrieben ist, aber die Laufzeit ist in ANSI C geschrieben
Jikes RVM , eine selbsthostende JVM, die häufig für Forschungszwecke verwendet wird, ist in Java geschrieben. Es ist nicht die Person, die auf ihren Desktops läuft, aber es steht ganz oben auf meiner Liste "Jetzt wollen wir die allgemeine Kraft der Sprache demonstrieren".
Angenommen, Sie sprechen von der Hotspot-JVM, die von Sun bereitgestellt wird und in C ++ geschrieben ist. Weitere Informationen zu den verschiedenen virtuellen Maschinen für Java finden Sie unter diesem Link . javac ist wie die meisten Java-Compiler in Java geschrieben.
(Weitere Informationen finden Sie unter folgendem Link: https://docs.oracle.com/javase/specs/jvms/se7/html/ )