Programmerere bruker kompilatorer for å gjøre kildekode til maskinkode.
Datamaskiner leser kommandoer fra et maskinspråk skrevet i binært, dvs. lange strenger med nuller og enere. Mens datamaskiner kan lese dette språket effektivt, kan de fleste menneskelige programmerere ikke. Det er derfor programmerere jobber i et programmeringsspråk de kan forstå, som de så oversetter til maskinspråket datamaskinen kan forstå. Mens mange nyere språk bruker tolker som oversetter fra det ene til det andre etter hvert som programmet kjører, eldre programmeringsspråk brukte kompilatorer som gjorde denne oversettelsen helt før datamaskinen utførte program.
Fordel: Selvstendig og effektiv
En stor fordel med programmer som er kompilert er at de er selvstendige enheter som er klare til å bli utført. Fordi de allerede er kompilert til maskinspråkbinærfiler, er det ingen andre applikasjon eller pakke som brukeren må holde seg oppdatert. Hvis et program er kompilert for Windows på en x86-arkitektur, trenger sluttbrukeren bare et Windows-operativsystem som kjører på en x86-arkitektur. I tillegg kan en forhåndskompilert pakke kjøre raskere enn en tolk som kompilerer kildekode i sanntid.
Dagens video
Ulempe: Maskinvarespesifikk
Fordi en kompilator oversetter kildekoden til et spesifikt maskinspråk, må programmer være det spesielt kompilert for OS X, Windows eller Linux, så vel som spesifikt for 32-bit eller 64-bit arkitekturer. For en programmerer eller programvareselskap som prøver å få et produkt ut til et bredest mulig publikum, betyr dette å opprettholde flere versjoner av kildekoden for samme applikasjon. Dette resulterer i mer tid brukt på kildekodevedlikehold og ekstra problemer når oppdateringer slippes.
Fordel: Maskinvareoptimalisering
Mens det å være låst til en spesifikk maskinvarepakke har sine ulemper, kan kompilering av et program også øke ytelsen. Brukere kan sende spesifikke alternativer til kompilatorer angående detaljene for maskinvaren programmet skal kjøre på. Dette lar kompilatoren lage maskinspråkkode som gjør den mest effektive bruken av den angitte maskinvaren, i motsetning til mer generisk kode. Dette lar også avanserte brukere optimalisere ytelsen til et program på datamaskinene sine.
Ulempe: Compile Times
En av ulempene med å ha en kompilator er at den faktisk må kompilere kildekoden. Mens de små programmene som mange nybegynnere programmerere koder tar trivielle mengder tid å kompilere, kan det ta betydelige mengder tid å kompilere større applikasjonspakker. Når programmerere ikke har annet å gjøre enn å vente på at kompilatoren er ferdig, kan denne tiden øke – spesielt under utviklingsstadiet, når koden må kompileres for å teste funksjonalitet og feilsøke feil.