A binary file containing an executable program, formed by a sequence of op code/data pairs. Byte-code op codes are most often fixed size binary patterns, but can be variable size. The data portion consists of zero or more bits, the format of the data portion may be determined by the identifier. The data is most often variable in size. In some cases, by clever design, (e.g. some RISC instruction sets) the identifier/data pair is a fixed size. This can provide performance benefits. A byte-code program is normally interpreted by a byte-code interpreter. The advantage of this technique compared with outputing machine code for a particular processor is that the same byte-code can be executed on any processor on which the byte-code interpreter runs. The byte-code may be compiled to machine code ("native code") for speed of execution but this usually requires significantly greater effort for each new taraget architecture than simply porting the interpreter. For example, Java is compiled to byte-code which runs on the Java Virtual Machine. |