Strojni jezik je programski jezik, ki ga računalnik neposredno razume, zato ga ni treba prevajati. Podan je v obliki strojnih kod, ki pomenijo strojne – procesorske ukaze, saj računalniki razumejo le bitni jezik. Če torej hočemo, da naš računalnik izvede neko nalogo ali opravilo, mu moramo to podati v obliki, ki jo razume, torej v enicah in ničlah.
Strojni jezik sestavlja ustrezno zaporedje znakov 0 in 1, torej niz strojnih inštrukcij – navodil. Vsako izmed njih sestoji iz niza dvojiških številk določene dolžine. Ta niz se deli na dva dela: operacijskega in naslovnega. Operacijski del predstavlja kodirano obliko določene elementarne operacije, naslovni del pa kodirano obliko efektivnih naslovov v spominu ali v registrih, na katerih vsebinah se želi opravljati določena elementarna operacija.
Assembler
Direktno delo s strojnim jezikom je skoraj nemogoče. Prav zato so je razvil prevod strojnega jezika v človeku nekoliko bolj razumljiv jezik - assembler. Assembler še vedno ne pozna višje-stopenjskih konstruktov in je samo prepis programa v bolj razumljivo formo (primer v x86 procesorki arhitekturi):
mov eax, ecx;
add eax, eax;
V strojnem jeziku bi bili tako mov (instrukcija) kot operandi (v tem primeru registri) kodirani kot same ničle in enice na primer: 01001010010010100101. Zgornji "program" je veliko bolj razumljiv.