Programuotojai naudoja kompiliatorius, kad šaltinio kodą paverstų mašininiu kodu.
Kompiuteriai skaito komandas iš mašininės kalbos, parašytos dvejetainiais, t.y. ilgomis nulių ir vienetų eilutėmis. Nors kompiuteriai gali efektyviai skaityti šią kalbą, dauguma programuotojų to negali. Štai kodėl programuotojai dirba jiems suprantama programavimo kalba, kurią vėliau verčia į kompiuterio kalbą, kurią supranta kompiuteris. Nors daugelyje naujesnių kalbų naudojami vertėjai, kurie verčia iš vienos kalbos į kitą, kai programa veikia, senesnėse kalbose programavimo kalbos naudojo kompiliatorius, kurie atliko šį vertimą prieš kompiuteriui vykdant programa.
Privalumas: savarankiškas ir efektyvus
Vienas iš pagrindinių sukompiliuojamų programų pranašumų yra tai, kad jos yra savarankiški vienetai, kurie yra paruošti vykdyti. Kadangi jie jau yra sudaryti į mašininės kalbos dvejetainius failus, nėra antros programos ar paketo, kurį vartotojas turėtų nuolat atnaujinti. Jei programa sukurta „Windows“ x86 architektūrai, galutiniam vartotojui reikia tik „Windows“ operacinės sistemos, veikiančios x86 architektūroje. Be to, iš anksto sukompiliuotas paketas gali veikti greičiau nei vertėjas, sudarantis šaltinio kodą realiuoju laiku.
Dienos vaizdo įrašas
Trūkumas: Specifinė aparatinė įranga
Kadangi kompiliatorius verčia šaltinio kodą į konkrečią mašinos kalbą, programos turi būti specialiai sukurta OS X, Windows arba Linux, taip pat specialiai 32 bitų arba 64 bitų architektūros. Programuotojui ar programinės įrangos įmonei, bandančiam pristatyti produktą kuo platesnei auditorijai, tai reiškia, kad reikia išlaikyti kelias tos pačios programos šaltinio kodo versijas. Dėl to daugiau laiko praleidžiama šaltinio kodo priežiūrai ir atsiranda papildomų problemų, kai išleidžiami naujinimai.
Privalumas: aparatinės įrangos optimizavimas
Programos sudarymas taip pat gali padidinti jos našumą, nors jis turi ir neigiamų pusių. Vartotojai kompiliatoriams gali siųsti konkrečias parinktis, susijusias su informacija apie aparatinę įrangą, kurioje programa veiks. Tai leidžia kompiliatoriui sukurti mašinos kalbos kodą, kuris efektyviausiai naudoja nurodytą aparatinę įrangą, o ne bendresnį kodą. Tai taip pat leidžia pažengusiems vartotojams optimizuoti programos našumą savo kompiuteriuose.
Trūkumas: Kompiliavimo laikas
Vienas iš kompiliatoriaus trūkumų yra tas, kad jis iš tikrųjų turi kompiliuoti šaltinio kodą. Nors mažų programų, kurias koduoja daugelis pradedančiųjų programuotojų, kompiliavimas užtrunka labai mažai laiko, didesnių programų rinkinių kompiliavimas gali užtrukti daug laiko. Kai programuotojams nelieka nieko kito, tik laukti, kol baigsis kompiliatorius, šis laikas gali padidėti, ypač kūrimo etapas, kai reikia sukompiliuoti kodą, kad būtų galima išbandyti funkcionalumą ir pašalinti triktis trikdžių.