Machine language is a programming language instruction that is actually read and acted on by the computer processing circuitry. Machine language is written in binary numbers and is virtually impossible for humans to read; for this reason, programmers use assembly language or a high-level programming language to write programs, which are then compiled into machine language. Machine language takes advantage of the unique characteristics of a given processor, a compiled program written for one processor (or processor family) will not execute on a different processor design. To develop programs for more than one system, it is necessary to use compilers that generate the code needed for each type of processor. See assembly language, binary notation, compiler, microcode, RISC.