[go: up one dir, main page]

Versj. 13
Denne versjonen ble sendt inn av Tom Heine Nätt 23. februar 2023. Innsenders kommentar til endringsforslaget: «la til "fortolker"». Den ble godkjent av Eva Hadler Vihovde 13. mars 2023. Artikkelen endret 13 tegn fra forrige versjon.

En kompilator er et spesielt dataprogram som oversetter, kompilerer, et program skrevet i et programmeringsspråk til maskinkode som datamaskinens prosessor så kan utføre. Denne oversettelsen trenger kun gjøres én gang, og det er maskinkoden som så distribueres til brukere og kjøres.

Kompilatoren er spesifikk for et bestemt programmeringsspråk og ofte også en bestemt maskintype. Den sørger for at programmet skrevet på generelle høynivåspråk blir oversatt til maskininstruksjoner som passer en bestemt datamaskin.

Et alternativ til kompilering er interpretering, der en tolker (fortolker) oversetter instruksjonene mens programmet utføres. Dette benyttes som regel av skriptingspråk. Interpretering kan sees på som kompilering som skjer under hver kjøring, i motsetning til kompilering som gjøres på forhånd.

Selv om man forenklet sier at kompilatoren produserer maskinkode, er ikke det helt korrekt. I praksis produseres objektkode eller objektmoduler, som er delvis maskinkode og delvis referanser til andre nødvendige ressurser. Et kjørende program settes sammen av en eller flere objektmoduler, og det er et spesielt dataprogram som kalles lenker (engelsk linker) som setter disse sammen til et kjørbart program. Objektkoden har relative adresser som blir gitt en absolutt verdi av lenkeren når modulens plass i det kjørbare programmet er bestemt.