Nackdelar och fördelar med kompilatorer

...

Programmerare använder kompilatorer för att omvandla källkod till maskinkod.

Datorer läser kommandon från ett maskinspråk skrivna i binärt, det vill säga långa strängar med nollor och ettor. Även om datorer kan läsa detta språk effektivt, kan de flesta mänskliga programmerare inte det. Det är därför programmerare arbetar i ett programmeringsspråk de kan förstå, som de sedan översätter till det maskinspråk som datorn kan förstå. Medan många nyare språk använder tolkar som översätter från det ena till det andra när programmet körs, äldre programmeringsspråk använde kompilatorer som gjorde denna översättning helt innan datorn körde program.

Fördel: Självständig och effektiv

En stor fördel med program som kompileras är att de är fristående enheter som är redo att köras. Eftersom de redan är kompilerade till maskinspråksbinärer, finns det ingen andra applikation eller paket som användaren måste hålla uppdaterad. Om ett program kompileras för Windows på en x86-arkitektur behöver slutanvändaren endast ett Windows-operativsystem som körs på en x86-arkitektur. Dessutom kan ett förkompilerat paket köras snabbare än en tolk som kompilerar källkod i realtid.

Dagens video

Nackdel: Hårdvaruspecifik

Eftersom en kompilator översätter källkoden till ett specifikt maskinspråk måste program vara det speciellt kompilerad för OS X, Windows eller Linux, såväl som specifikt för 32-bitars eller 64-bitars arkitekturer. För en programmerare eller ett mjukvaruföretag som försöker få ut en produkt till en så bred publik som möjligt, betyder det att man underhåller flera versioner av källkoden för samma applikation. Detta resulterar i att mer tid spenderas på källkodsunderhåll och extra problem när uppdateringar släpps.

Fördel: Hårdvaruoptimering

Även om det har sina nackdelar att vara låst till ett specifikt hårdvarupaket, kan kompilering av ett program också öka dess prestanda. Användare kan skicka specifika alternativ till kompilatorer angående detaljerna för hårdvaran som programmet kommer att köras på. Detta gör att kompilatorn kan skapa maskinspråkskod som gör den mest effektiva användningen av den angivna hårdvaran, i motsats till mer generisk kod. Detta gör det också möjligt för avancerade användare att optimera ett programs prestanda på sina datorer.

Nackdel: Sammanställ tider

En av nackdelarna med att ha en kompilator är att den faktiskt måste kompilera källkoden. Medan de små program som många nybörjare programmerare kodar tar triviala mängder tid att kompilera, kan större programsviter ta avsevärd tid att kompilera. När programmerare inte har något att göra än att vänta på att kompilatorn ska slutföras, kan den här tiden öka – speciellt under utvecklingsstadiet, då koden måste kompileras för att testa funktionalitet och felsöka fel.