In quali lingue è il compilatore Java (javac
), la macchina virtuale (JVM) e lo starter java
sono stati scritti?In quale lingua sono scritti il compilatore Java e JVM?
risposta
L'esatta formulazione del quesito è leggermente fuorviante: non è "la JVM" o "il compilatore" in quanto vi sono diversi fornitori JVM (JRockit è uno, IBM un'altra) e più compilatori là fuori.
The Sun JVM è scritto in
C
, anche se questo non deve essere il caso - la JVM come corre sulla vostra macchina è una eseguibile dipendente dalla piattaforma e quindi potrebbe essere stato originariamente scritto in qualsiasi lingua Per esempio, l'originale IBM JVM è stato scritto in SmalltalkLe librerie Java (
java.lang
,java.util
ecc, spesso definito come Java API) sono essi stessi scritto in Java, anche se i metodi contrassegnati comenative
avrà stato scritto inC
oC++
.Credo che il compilatore Java fornito da Sun sia scritto anche in Java. (Anche se ancora una volta, ci sono più compilatori là fuori)
Penso che intenda "java" il programma che usi per avviare una JVM. –
In realtà, * una * libreria in JRE di Sun è scritta in NetRexx. (È una delle librerie matematiche di precisione arbitraria, BigInteger, BigNum o BigDecimal. Ho dimenticato quale.) In teoria, è possibile utilizzare qualsiasi linguaggio per implementare JRE, purché possa compilare una rappresentazione che un programma Java può capire. –
Si prega di fornire un riferimento a Sun JVM in fase di scrittura in C. –
In linea di principio qualsiasi cosa, di solito C
Da Java Docs
Il compilatore è scritto in Java e il runtime è scritto in ANSI C
Il primo compilatore Java sviluppato da Sun Microsystems è stato scritto in C utilizzando alcune librerie da C++ http://en.wikipedia.org/wiki/Java_compiler –
Questo è davvero piuttosto un vecchio documento (> 10 anni dall'aspetto delle cose). Ad esempio, si dice che "i bytecode Java sono tradotti al volo in istruzioni native della macchina (interpretate) e non memorizzate ovunque" * che non è stato vero per circa 5 anni! –
Bene, da quando la documentazione è stata veramente aggiornata, soprattutto dopo grandi cambiamenti? :) – Esko
This link dovrebbe rispondere alla tua domanda
Sembra che il compilatore ora sia scritto in Java, ma il runtime è scritto in A NSI C
Jikes RVM, una JVM auto-hosting ampiamente utilizzata per scopi di ricerca è scritta in Java. Non è la sola gente a correre sui loro desktop, ma è molto più in alto nella mia lista di "ora dimostriamo il potere generale della lingua".
Le tartarughe * sono verso il basso *? Ha una specie di microkernel? Se sì, in quale lingua è scritto? – Raedwald
Supponendo che stai parlando del Hotspot JVM, che è IIRC fornito da Sun, è scritto in C++. Per maggiori informazioni sulle varie macchine virtuali per Java, è possibile controllare questo link. javac, come la maggior parte dei compilatori Java, è scritto in Java.
La maggior parte dei sistemi operativi, JVM sono scritti in ISO C++. Dubito che venga usato ANSI C, un linguaggio completamente diverso che al giorno d'oggi è piuttosto antiquato.
Stai scherzando. La maggior parte delle versioni di Linux sono scritte in C. Un'enorme quantità di Windows è scritta in asso, come molti sistemi operativi integrati.La maggior parte degli scrittori di sistemi operativi rimarrà lontano da linguaggi come il C++, dove elementi come costruttori e distruttori che non sono presenti nel codice sorgente vengono automaticamente inseriti dal compilatore. –
linux è scritto in "C". fino a quando jrockit jvm è stato scritto in "C". solo l'hotspot jvm è scritto in "C++". – techcraver
In realtà la JVM Oracle è scritta in C++, non C.
Date un'occhiata al codice JVM HotSpot qui: http://openjdk.java.net/groups/hotspot/
Il primo compilatore Java è stato sviluppato da Sun Microsystems ed è stato scritto in C usando alcune librerie da C++. Oggi, il compilatore Java è scritto in Java, mentre il JRE è scritto in C.
Possiamo immaginare come il compilatore Java è stato scritto in Java in questo modo:
Il compilatore Java è scritto come un programma Java e quindi 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 i programmi Java.
+1 per spiegare come un compilatore Java può essere scritto in Java :) –
- 1. I comandi della shell sono scritti in quale lingua?
- 2. quale lingua usa google e gli altri
- 3. JVM/CLR Opzioni lingua compatibili con origine
- 4. Compilatore da Lua a JVM?
- 5. In quale lingua è scritto Swift?
- 6. linguaggio basato su JVM senza runtime lingua
- 7. Quale D compilatore usare?
- 8. Come creare una lingua .Net o JVM?
- 9. Compilatori Java o lingue JVM che supportano goto?
- 10. Informazioni su codice bytecode Java e JVM
- 11. Quale lingua ha coniato il termine lvalue?
- 12. Lingua per compilatore basato su LLVM
- 13. Quale JVM in tempo reale (RTSJ) è la più preferita?
- 14. In quale lingua è scritto HTML?
- 15. Strumento che mi mostra quali file sono scritti in Linux?
- 16. Quale lingua usa l'estensione .pde?
- 17. Statistiche della lingua Java
- 18. Interpreti scritti in standard C o C++
- 19. Come può essere compilato il compilatore di una lingua in quella lingua?
- 20. Come posso vedere in quale codice [Java/Scala?] Il compilatore Scala riscrive il codice Scala originale
- 21. In quale lingua è scritto .NET Framework?
- 22. Java Virtual Machines (JVM) e il loro confronto delle prestazioni
- 23. Come scrivere una JVM in Java
- 24. In quale lingua è scritto JavaScript?
- 25. dire esplicitamente in quale lingua tradurre
- 26. In che modo JVM e Java implementano la lettura e la scrittura di file?
- 27. ID oggetto Java in jvm
- 28. Cosa sono i bytecode e come li gestisce JVM
- 29. Dump dell'heap Java e arresto - quale ordine?
- 30. Java senza JVM
io lavoro su java, quindi voglio sapere della lingua ... :) –
Sì, ma non sono coinvolto (né Rahul o lui non farebbe presumibilmente la domanda) nella scrittura di compilatori o interpreti Java . Scrivo codice Java ed è utile sapere come vengono eseguiti specifici bit (per selezionare le classi) ma se è scritto in C, BCPL o COBOL, non mi interessa. – paxdiablo
La tua prospettiva. Diciamo che hai lavorato su alcune tecnologie per 20 anni e l'intervistatore ti ha chiesto in che lingua è scritto o come funziona, quindi puoi dire che non ti interessa vuol dire che vuoi solo scrivere se non nella lingua voglio veramente capire la lingua. –