(Bilgisayar) Programming code that, once compiled, is run through a virtual machine instead of the computer's processor. By using this approach, source code can be run on any platform once it has been compiled and run through the virtual machine
Java programs are compiled to produce bytecode Because Java is designed to be machine agnostic, the bytecode is again compiled on the machine that executes it by a Just-In-Time compiler
Java source files are translated by a compiler into bytecodes - the instruction set of the Java Virtual Machine (JVM) Bytecodes are stored in class files
The low-level format into which the Java compiler translates Java source code The bytecodes are interpreted and executed by the Java interpreter, perhaps the transportation over the Internet
Most languages when compiled are translated into architecture specific machine code Bytecode is one step above this, a generic machine language Bytecode is unique to Java, and allows it to be cross-platform (What is Programming? - Slide 10)
A form of data executable by any platform on which Java runs Java code is generally interpreted in two steps First, it is converted from source code (the Java code as written) to bytecode When the bytecode is executed, it is converted to the native code for the platform in question
The machine-readable code that is created as the result of compiling a Java language source file This is the code distributed across the network to run an applet Bytecodes are architecture neutral; the Java-capable browser ported to a particular platform interprets them
Sometimes computer languages that are said to be either interpreted or compiled are in fact neither and are more accurately said to be somewhere in between Such languages are compiled into bytecode which is then interpreted on the target system Bytecode tends to be binary but will work on any machine with the appropriate runtime environment (or virtual machine) for it
The code that javac, the Java compiler, produces When the JVM loads this code, it either interprets it or just-in-time compiles it into native RISC code
Computer object code that is processed by a virtual machine The virtual machine converts generalized machine instructions into specific machine instructions (instructions that a computer's processor can understand) Bytecode is the result of compiling source language statements written in any language that supports this approach The best-known language today that uses the bytecode and virtual machine approach is Java In Java, bytecode is contained in a binary file with a class suffix (Strictly speaking, bytecode means that the individual instructions are one byte long, as opposed to PowerPC code, for example, which is four bytes long ) See also virtual machine (VM)
Intermediate target representation for Java compilers Bytecodes in turn are interpreted by Java virtual machines that then execute them on the target machine
A name given to a class of language intended for easy evaluation by a software interpreter Bytecodes are most common in interpreted languages (such as Prolog, elisp, perl and many of the variants of ML), and get their name from the common practice of encoding their instructions as single bytes, to allow the interpreter to quickly look up an instruction's meaning Bytecode languages are also used where cross-platform execution of code is desired (for example, Java or ZCode) - in this case, the intention is that the interpreter should be very much simpler than the compiler, and the bytecode bears a strong resemblance to a machine language Some bytecodes, such as elisp, exist merely to cut down on the evaluation time of expressions - these bytecodes often bear more resemblance to the high-level language they were compiled from Bytecode is an overloaded and occasionally abused term