Machine code, also known as machine language, is the elemental language of computers, comprising a long sequence of binary digital zeros and ones (bits).
Ultimately, the output of any programming language analysis and processing emerges in the form of machine code. After you write a program, your source language statements are compiled or (in the case of assembler language) put together into machine code that is stored as an executable file until someone tells the computer’s OS (operating system) to run it. In personal computer OSs, these files typically have the suffix “.exe.”
Each processor has its own specific machine language, and it reads and handles a certain number of bits at a time. Because it is designed to know how many bits (and which bits) tell it what operation to do, the processor can look at the correct sequence of bits and perform the next operation. Then it reads the next instruction, and so on. Each machine-code instruction causes the CPU (central processing unit) to perform a simple operation such as an arithmetic calculation or storing data in RAM (random access memory). Execution of machine code can be controlled by firmware or else carried out by means of the CPU’s internal wiring.
In analyzing problems or debugging programs, a tool called a dump is commonly used. A dump is a printout that shows the program in its machine code form. However, because it would be difficult and inefficient to render the program entirely as zeros and ones, each four bits are represented by a single hexadecimal numeral. Dumps also contain other information about the computer’s operation, such as the address of the instruction that was being executed at the time the dump was initiated.
Human programmers rarely, if ever, write or read in machine code because it is essentially impossible to translate it from or into thoughts that the human mind can understand. Humans write in so-called high-level languages that are far more comprehensible than machine code, and that require far fewer characters to represent the task at hand.
Machine languages are sometimes referred to as 1st generation programming languages.