W jakim języku napisany jest kompilator Java i JVM?
W jakich językach jest kompilator Java (javac
), maszyna wirtualna (JVM) i starter java
napisane?
9 answers
Dokładne sformułowanie pytania jest nieco mylące: nie jest to "JVM" lub "kompilator" , ponieważ istnieje wielu dostawców JVM (jrockit jest jednym, IBM innym) i wielu kompilatorów.
Sun JVM jest napisany w
C
, chociaż nie musi tak być - JVM, ponieważ działa na twoim komputerze, jest plikiem wykonywalnym zależnym od platformy, a zatem może być pierwotnie napisany w dowolnym języku język. Na przykład oryginalny IBM JVM został napisany w SmalltalkBiblioteki Java (
java.lang
,java.util
etc, często określane jako Java API ) są same w sobie napisane w Javie, chociaż metody oznaczone jakonative
będą napisane wC
lubC++
.-
Uważam, że kompilator Javy dostarczony przez Sun jest również napisany w Javie. (Chociaż znowu, istnieje wiele kompilatorów)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-03 12:26:32
From Java Docs
Kompilator jest napisany w Javie, a runtime w ANSI C
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-06 22:26:12
Pierwszy kompilator Javy został opracowany przez Sun Microsystems i został napisany w języku C przy użyciu niektórych bibliotek z C++. Obecnie kompilator Javy jest napisany w Javie, a JRE w C.
Możemy sobie wyobrazić, jak kompilator Javy został napisany w Javie w taki sposób:
Kompilator Javy jest napisany jako program Java, a następnie skompilowany z kompilatorem Javy napisanym w języku C (pierwszy kompilator Javy). W ten sposób możemy użyć nowo skompilowanego kompilatora Javy(napisanego w Javie) do kompilacji Javy programy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-06 02:34:19
W rzeczywistości Oracle JVM jest napisany w C++, a nie w C.
Spójrz na kod HotSpot JVM tutaj: http://openjdk.java.net/groups/hotspot/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-29 22:36:40
Ten link powinien odpowiedzieć na twoje pytanie
Wydaje się, że kompilator jest teraz napisany w Javie, ale runtime jest napisany w ANSI C
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-03 10:34:39
W zasadzie prawie wszystko, Zwykle C
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-03 06:44:57
Jikes RVM , własny hosting JVM używany szeroko do celów badawczych jest napisany w Javie. To nie jest ten, który ludzie uruchamiają na swoich pulpitach, ale jest tam na mojej liście "teraz pokażmy ogólną moc języka."
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-03 06:46:57
Przypuśćmy, że mówisz o hotspocie JVM, który jest iirc dostarczanym przez Sun, jest napisany w C++. Aby uzyskać więcej informacji na temat różnych maszyn wirtualnych dla Java, możesz sprawdzić ten link. javac , podobnie jak większość kompilatorów Javy, jest napisany w Javie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-03 06:51:38
Większość systemów operacyjnych, JVMs jest napisana w ISO C++. Wątpię, aby używany był ANSI C, zupełnie inny język, który jest obecnie dość przestarzały.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-08 13:14:36