Maskinkod
De faktiska talen processorn läser — allt annat vi kallar programmering är lager ovanpå det här.
Maskinkod är instruktioner kodade som binära tal, direkt körbara av en viss processorfamilj. Varje instruktion består av en operationskod som säger vad som ska göras och noll eller flera operander som säger med vad. På x86 kan en instruktion vara mellan en och femton byte lång; på ARM och andra RISC-arkitekturer har de fast längd, vilket gör avkodningen enklare och snabbare.
Assembly-språk är en direkt symbolisk motsvarighet — MOV i stället för ett tal — medan kompilatorer översätter från högre språk hela vägen ned. Att koden är arkitekturspecifik är hela skälet till att program måste kompileras om för nya plattformar, och till att virtuella maskiner och bytekod uppfanns.