Machine language

Machine language is the low-level language that is executed directly by a processor (CPU). It consists of a series of raw bytes that generally do not look meaningful as ASCII text, unlike the source code of most programming languages. A machine language program is stored directly as a binary executable file which can be run on the target machine. Assembly language is one step up from machine language, consisting of more human-readable code which assembles into machine language. Still-higher-level languages like C or BASIC are either compiled into machine language, compiled into intermediate code of some sort, or run by an interpreter, but eventually they become machine language instructions because that is all the processor understands directly.

Machine language is actually not the very lowest-level language; there are "microcode" instructions embedded within processor chips that actually carry out the instructions of machine language by breaking them up into even more primitive operations, but only chip designers need to worry about that level.

Few programmers deal directly with machine language, either; while at one point in the old days "geeks" toggled machine language programs into a computer bit-by-bit, or on even more primitive computers actually changed the wiring to represent the instructions of a program, in modern times even assembly language isn't used as much as it used to be, with programmers doing most of their work in higher-level languages, and even the compilers for those languages are often written in other high-level languages. (Somebody had to create machine-level code at some point to get all those higher-level things to work, though!)

Machine language is very specific to particular processor types, so any program in one processor's language (e.g., a Pentium chip) would not run directly in other processors (e.g., a 68000) unless that chip were specifically designed to be compatible.

Links

 * Wikipedia article
 * CPU database: list of processor chips