Programmeerijad kasutavad kompilaatoreid lähtekoodi masinkoodiks muutmiseks.
Arvutid loevad käske masinkeelest, mis on kirjutatud binaarselt, st pikki nullide ja ühtede jadasid. Kuigi arvutid suudavad seda keelt tõhusalt lugeda, ei suuda enamik programmeerijaid. Seetõttu töötavad programmeerijad neile arusaadavas programmeerimiskeeles, mille nad seejärel tõlgivad masinakeelde, millest arvuti aru saab. Kui paljud uuemad keeled kasutavad tõlke, mis tõlgivad programmi töötamise ajal ühest teise, siis vanemad programmeerimiskeeled kasutasid kompilaatoreid, mis tegid selle tõlke täielikult enne, kui arvuti selle käivitas programm.
Eelis: iseseisev ja tõhus
Kompileeritavate programmide üks peamisi eeliseid on see, et need on iseseisvad üksused, mis on täitmiseks valmis. Kuna need on juba kompileeritud masinkeele binaarfailideks, pole teist rakendust või paketti, mida kasutaja peab end ajakohasena hoidma. Kui programm kompileeritakse Windowsi jaoks x86 arhitektuuriga, vajab lõppkasutaja ainult x86 arhitektuuril töötavat Windowsi operatsioonisüsteemi. Lisaks võib eelkompileeritud pakett töötada kiiremini kui reaalajas lähtekoodi kompileeriv tõlk.
Päeva video
Puudus: riistvaraspetsiifiline
Kuna kompilaator tõlgib lähtekoodi kindlasse masinakeelde, peavad programmid olema spetsiaalselt kompileeritud OS X, Windowsi või Linuxi jaoks, samuti spetsiaalselt 32-bitise või 64-bitise jaoks arhitektuurid. Programmeerija või tarkvaraettevõtte jaoks, kes püüab toodet võimalikult laiale vaatajaskonnale viia, tähendab see sama rakenduse jaoks mitme lähtekoodi versiooni säilitamist. See toob kaasa rohkem aega, mis kulub lähtekoodi hooldusele ja lisaprobleeme värskenduste avaldamisel.
Eelised: riistvara optimeerimine
Kuigi teatud riistvarapaketti lukustamisel on oma varjuküljed, võib programmi koostamine suurendada ka selle jõudlust. Kasutajad saavad saata kompilaatoritele konkreetseid valikuid seoses riistvara üksikasjadega, millel programm töötab. See võimaldab kompilaatoril luua masinkeele koodi, mis kasutab kindlaksmääratud riistvara kõige tõhusamalt, erinevalt üldisemast koodist. See võimaldab ka kogenud kasutajatel optimeerida programmi jõudlust oma arvutis.
Puudus: koostamisajad
Üks kompilaatori puudusi on see, et see peab tegelikult lähtekoodi kompileerima. Kui väikeste programmide puhul, mida paljud algajad programmeerijad kodeerivad, kulub kompileerimiseks vähe aega, siis suuremate rakenduste komplektide kompileerimine võib võtta palju aega. Kui programmeerijatel pole muud teha kui oodata, kuni kompilaator lõpetab, võib see aeg kokku tulla, eriti arendusetapp, mil funktsionaalsuse testimiseks ja tõrkeotsinguks tuleb kood kompileerida tõrkeid.