Kompilator GNU dla Javy
| Kompilator GNU dla Javy | |
|---|---|
| | |
| | |
| Typ | Kompilator |
| Autor | Rozwiązania Łabędzia [1] |
| Deweloper | Projekt GNU |
| System operacyjny | Uniksopodobny |
| Pierwsza edycja | 1998 [1] [2] |
| Platforma sprzętowa | Maszyna wirtualna Java |
| Ostatnia wersja | 6.5 / 26 października 2018 ( 4 grudnia 2015 ) |
| Licencja | GNU GPL |
| Stronie internetowej | gcc.gnu.org/gcc-6/ |
| Pliki multimedialne w Wikimedia Commons | |
GNU Compiler for Java ( GCJ lub gcj ) to darmowy kompilator języka Java , który jest częścią GNU Compiler Collection , ale od 2017 roku nie jest już utrzymywany i nie będzie częścią przyszłych wydań.
GCJ może kompilować kod źródłowy Java do kodu bajtowego Java Virtual Machine lub bezpośrednio do kodu maszynowego na wielu architekturach procesorów . Może również kompilować pliki klas zawierające kod bajtowy lub całe pliki JAR zawierające takie pliki do kodu maszynowego.
Większość bibliotek uruchomieniowych używanych przez gcj pochodzi z projektu GNU Classpath (por. biblioteka libgcj ). Od gcj 4.3, gcj jest zintegrowany z ecj, kompilatorem Eclipse Java . [3]
Od 2007 roku dużo pracy włożono w obsługę dwóch graficznych API Javy w GNU Classpath : AWT i Swing . Wsparcie dla AWT jest w toku, a następnie wsparcie dla Swinga. [cztery]
Od 2009 roku nowe zmiany w gcj prawie się skończyły. [5] Produkt jest obecnie w trybie konserwacji.
Od 2015 r. GCJ nie ogłosił żadnych nowych zmian, a produkt był w trybie konserwacji, a rozwój zestawu narzędzi Java open source odbywał się głównie w OpenJDK. GCJ został usunięty z bagażnika GCC 30 września 2016 r. Zapowiedź jego usunięcia została ogłoszona wraz z wydaniem GCC 7.1, które go nie zawiera. GCJ pozostaje częścią GCC 6.
Wydajność
Kod Java skompilowany do kodu natywnego przy użyciu GCJ powinien mieć krótszy czas uruchamiania niż równoważny kod bajtowy działający w JVM [6] .
Jednak po uruchomieniu Java kod skompilowany przez GCJ niekoniecznie będzie działał szybciej niż kod bajtowy wykonywany przez nowoczesną JVM z obsługą JIT . Dzieje się tak nawet wtedy, gdy GCJ jest wywoływane z zaawansowanymi opcjami optymalizacji, takimi jak -fno-bounds-check -O3 -mfpmath=sse -msse2 -ffast-math -march=native . To, czy skompilowany program może przewyższyć JVM, czy nie, zależy od konkretnych operacji wykonywanych przez kod [7] .
Programy używające kompilatora GNU dla Javy
Zobacz także
- Interpreter GNU dla Javy (GIJ)
- Mrożona herbata
- Kaffe
- SableVM
- JamVM
- Apache Harmony
- Dżiki
- Kompilatory C do Java Virtual Machine
- Darmowa implementacja Java
Notatki
- ↑ 1 2 https://gcc.gnu.org/wiki/GCJ
- ↑ https://gcc.gnu.org/news/gcj-announce.txt
- ↑ gcj do używania kompilatora Eclipse jako interfejsu (łącze w dół) (8 stycznia 2007). Pobrano 20 maja 2007 r. Zarchiwizowane z oryginału 2 maja 2012 r.
- ↑ GCJ FAQ - Projekt GNU - Fundacja Wolnego Oprogramowania (FSF) . Źródło 11 lipca 2010. Zarchiwizowane z oryginału w dniu 15 stycznia 2016.
- ↑ GCJ: Wiadomości zarchiwizowane 18 kwietnia 2008 r.
- ↑ GCJ: Statyczny kompilator Java GNU (łącze w dół) . Źródło 11 lipca 2010. Zarchiwizowane z oryginału w dniu 7 czerwca 2011.
- ↑ Porównanie wydajności GCJ i Java JIT (łącze w dół) . Pobrano 11 lipca 2010 r. Zarchiwizowane z oryginału w dniu 25 lutego 2017 r.
Linki
- gcc.gnu.org/java/ - oficjalna strona kompilatora GNU dla Javy
- Podręcznik GCJ
- O sekcji CNI Podręcznika GCJ
- GCJ Często zadawane pytania
- LWN: GCJ - przeszłość, teraźniejszość i przyszłość - artykuł omawia historię GCJ.