Programatorii folosesc compilatoare pentru a transforma codul sursă în cod mașină.
Calculatoarele citesc comenzi dintr-un limbaj de mașină scris în binar, adică șiruri lungi de zerouri și unu. În timp ce computerele pot citi acest limbaj eficient, majoritatea programatorilor umani nu pot. De aceea, programatorii lucrează într-un limbaj de programare pe care îl pot înțelege, pe care apoi îl traduc în limbajul mașinii pe care computerul îl poate înțelege. În timp ce multe limbi mai noi folosesc interpreți care traduc de la una la alta pe măsură ce programul rulează, mai vechi limbajele de programare au folosit compilatoare care au făcut această traducere în întregime înainte ca computerul să execute program.
Avantaj: autonom și eficient
Un avantaj major al programelor care sunt compilate este că sunt unități autonome care sunt gata să fie executate. Deoarece sunt deja compilate în binare în limbajul mașinii, nu există o a doua aplicație sau pachet pe care utilizatorul trebuie să-l țină la zi. Dacă un program este compilat pentru Windows pe o arhitectură x86, utilizatorul final are nevoie doar de un sistem de operare Windows care rulează pe o arhitectură x86. În plus, un pachet precompilat poate rula mai rapid decât un interpret care compila codul sursă în timp real.
Videoclipul zilei
Dezavantaj: Specific hardware
Deoarece un compilator traduce codul sursă într-un anumit limbaj de mașină, programele trebuie să fie compilat special pentru OS X, Windows sau Linux, precum și special pentru 32 de biți sau 64 de biți arhitecturi. Pentru un programator sau o companie de software care încearcă să aducă un produs către cel mai larg public posibil, aceasta înseamnă menținerea mai multor versiuni ale codului sursă pentru aceeași aplicație. Acest lucru are ca rezultat mai mult timp petrecut cu întreținerea codului sursă și probleme suplimentare atunci când sunt lansate actualizări.
Avantaj: Optimizare hardware
Deși blocarea într-un pachet hardware specific are dezavantajele sale, compilarea unui program poate crește și performanța acestuia. Utilizatorii pot trimite opțiuni specifice compilatorilor cu privire la detaliile hardware-ului pe care programul va rula. Acest lucru permite compilatorului să creeze cod în limbajul mașinii care utilizează cât mai eficient hardware-ul specificat, spre deosebire de codul mai generic. Acest lucru permite, de asemenea, utilizatorilor avansați să optimizeze performanța unui program pe computerele lor.
Dezavantaj: timpi de compilare
Unul dintre dezavantajele unui compilator este că trebuie să compileze codul sursă. În timp ce programele mici pe care mulți programatori începători le codifică necesită o perioadă nesemnificativă de timp pentru a compila, suitele de aplicații mai mari pot necesita o cantitate semnificativă de timp pentru a compila. Când programatorii nu au nimic de făcut decât să aștepte până când compilatorul se încheie, acest timp se poate adăuga, mai ales în timpul etapa de dezvoltare, când codul trebuie compilat pentru a testa funcționalitatea și a depana scapari.