Bytecode or P-code (portable code) is a form of program code that is designed to be low-level (like machine language) but portable to different platforms. Effectively, it is code for a virtual machine, which is further interpreted or compiled/assembled into the native code of the machine it is running on. Compilers for high-level languages sometimes produce bytecode in order to be platform-independent; the only platform-specific part of the language system is the final interpreter to run the bytecode.
A number of languages have used this sort of system, from UCSD Pascal's P-code to Python's compiled bytecode (generated automatically from scripts the first time they are run because they run faster than the raw human-readable Python scripts).
For a list of bytecode formats, see Executables#Virtual machine code.