Strojna koda

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje

Strojna koda, strojni jezik ali strojno besedilo programa (angleško Machine code ali Machine language) je besedilo oziroma koda v izvršljivih datotekah, ki so jih iz izvornega besedila ustvarili prevajalniki ali zbirniki. Strojno besedilo programa je sestavljeno iz zaporedij izvršljivih strojnih ukazov, ki jih na osebnih računalnikih izvaja centralna procesna enota.

Vsak procesorski sistem ima svojo arhitekturno zasnovo (platformo). To pomeni, da je strojni jezik zelo drugačen med različnimi procesorji (vendar enak za tiste na enaki zasnovi), tako da je treba za vsako platformo uporabiti drugačen prevajalnik (angleško compiler), da prevede izvorno kodo v strojno.

Čeprav najbolj odvisna od procesorske zasnove, je platforma skupek lastnosti vseh delov računalnika. V to šteje tudi operacijski sistem in drugi pomembni programi (angleško software) ali strojni deli (angleško hardware).

Centralna procesna enota neposredno rezume objektno kodo, vendar za uspešno izvajanje na danem operacijskem sistemu potrebujemo pravtako določen izvršni zapis (angl. executable format), ki je določen z ABI vmesnikom (angl. Application Binary Interface) operacijskega sistema. V izvršnih datotekah se torej nahaja strojna koda določenega izvršnega zapisa, kar je osrednji razlog za neprenosljivost računalniških programov med posameznimi operacijskimi sistemi. GNU/Linux in družina BSD uporabljajo npr. izvršni zapis ELF (angl. Executable and Linkable Format), Mac uporablja Mach-o, medtem ko Windows PE (angl. Portable and Executable Format).

Izvršna datoteka z strojno kodo je lahko tudi brez izvršnega zapisa. Datoteko, ki jo je moč izvajati brez operacijskega sistema na centralni procesni enoti, imenujemo ploščata izvršna datoteka (angl. flat binary file).

Strojno kodo pogosto označujemo kot prvo generacijo programskih jezikov.