The Java Platform consists of several programs, each of which provides a distinct portion of its overall capabilities. There is the Java compiler that converts Java source code into Java bytecode (an intermediate language for the [[Java Virtual Machine]] a.k.a. (JVM)) and provided as part of the [[Java Development Kit]] (JDK). There is a sophisticated [[Java Runtime Environment]] (JRE) that usually implements the JVM by means of a [[Just-in-time_compilation|just-in-time (JIT) compiler]] that converts intermediate bytecode into native machine code on the fly. There are extensive libraries (pre-compiled into Java bytecode) containing reusable code, as well as numerous ways for Java applications to be deployed, including being embedded in a web page as an applet. Taken together, this entire set of software technologies is referred to as the 'Java Platform'.