Codice macchina
I numeri che il processore legge davvero: tutto ciò che chiamiamo programmazione è uno strato sovrapposto a questo.
Il codice macchina è fatto di istruzioni codificate come numeri binari, eseguibili direttamente da una specifica famiglia di processori. Ogni istruzione consiste in un codice operativo che indica cosa fare e in zero o più operandi che indicano su cosa farlo. Su x86 un'istruzione può occupare da uno a quindici byte; su ARM e altre architetture RISC la lunghezza è fissa, il che rende la decodifica più semplice e veloce.
Il linguaggio assembly ne è l'equivalente simbolico diretto (MOV al posto di un numero), mentre i compilatori traducono dai linguaggi di alto livello fino a questo punto. Il fatto che il codice dipenda dall'architettura è l'unico motivo per cui i programmi vanno ricompilati per le nuove piattaforme, e la ragione per cui sono state inventate le macchine virtuali e il bytecode.