A program in the form of a series of binary codes that is understandable by the CPU. 99.9% of the time programmers write their code in another “higher level” programming language which in turn translates their code into machine language. The lowest-level programming language (except for computers that utilize programmable microcode) Machine languages are the only languages understood by computers. While easily understood by computers, machine languages are almost impossible for humans to use because they consist entirely of numbers. Programmers, therefore, use either a high-level programming language or an assembly language. An assembly language contains the same instructions as a machine language, but the instructions and variables have names instead of being just numbers. Programs written in high-level languages are translated into assembly language or machine language by a compiler. Assembly language programs are translated into machine language by a program called an assembler. Every CPU has its own unique machine language. Assembly language and machine language are called low level programming languages. Programs must be rewritten or recompiled, therefore, to run on different types of computers or different platforms.