Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit (CPU). Each instruction performs a very specific task, typically either an operation on a unit of data (in a register or in memory, e.g. add or move), or a jump operation (deciding which instruction executes next, often conditional on the results of a previous instruction). Every executable program is made up of a series of these atomic instructions. Machine code may be regarded as an extremely hardware-dependent programming language or as the lowest-level representation of a compiled and/or assembled computer program. While it is possible to write programs in machine code, because of the tedious difficulty in managing CPU resources, it is rarely done any more, except for situations that require the most extreme optimization.
Almost all executable programs are written in higher-level languages, and translated to executable machine code by a compiler and linker. Machine code is sometimes called native code when referring to platform-dependent parts of language features or libraries.
Programs in interpreted languages are not represented by machine code; however, their interpreter (which may be seen as a processor executing the higher-level program) often is. Machine code should not be confused with so-called "bytecode", which is executed by an interpreter.