Java compiler
From Wikipedia, the free encyclopedia
In computing, a Java compiler is a compiler for the Java programming language. The most common form of output from a Java compiler is Java class files containing platform-neutral Java bytecode. There exist also compilers emitting optimized native machine code for a particular hardware/Operating system combination.
Most Java-to-bytecode compilers, Jikes being a well known exception, do virtually no optimization, leaving this until runtime to be done by the JRE[citation needed].
The Java Virtual Machine (JVM) loads the class files and either interprets the bytecode or just-in-time compiles it to machine code and then possibly optimizes it using dynamic compilation.
The very first Java compiler developed by Sun Microsystems was written in C using some libraries from C++.[citation needed]
[edit] Major Java compilers
As of 2006, the following are major Java compilers:
- javac, included in JDK from Sun Microsystems, open-sourced since 13 November 2006.
- GCJ, a part of gcc which compiles C, Fortran, Pascal and other programming languages besides Java. It can also generate native code using the back-end of gcc.
- ECJ, the Eclipse Compiler for Java, is an open source incremental compiler used by the Eclipse JDT.
- Jikes, an open source compiler from IBM, which is written in C++ and uses a variant of static single assignment form for optimization. As of early 2007 the project is no longer being actively developed [1].
- JavaNativeCompiler(JNC) is a graphical front-end to GCJ, producing Windows and Linux binary executables.
- Excelsior JET (commercial) also compiles Java to Windows and Linux binary executables and packages them for deployment.
[edit] References
- ^ The last 1.22 version is of October 2004 [1]. The project CVS activity for the last 12 months is null [2]
[edit] External links
- Sun's OpenJDK javac page
- Jikes homepage
- JSR 199 Java Compiler API Java Specification Request for invoking the Java compiler from a Java program
- Java Sun