Nevýhody a výhody kompilátorů

...

Programátoři používají kompilátory k přeměně zdrojového kódu na strojový kód.

Počítače čtou příkazy ze strojového jazyka zapsaného binárně, tj. dlouhé řetězce nul a jedniček. Zatímco počítače dokážou tento jazyk číst efektivně, většina lidských programátorů ne. To je důvod, proč programátoři pracují v programovacím jazyce, kterému rozumí, a který pak překládají do strojového jazyka, kterému počítač rozumí. Zatímco mnoho novějších jazyků používá tlumočníky, které překládají z jednoho do druhého během běhu programu, starší jsou programovací jazyky používaly kompilátory, které provedly tento překlad zcela předtím, než počítač provedl program.

Výhoda: Samostatný a efektivní

Jednou z hlavních výhod kompilovaných programů je, že se jedná o samostatné jednotky, které jsou připraveny ke spuštění. Protože jsou již zkompilovány do binárních souborů strojového jazyka, neexistuje žádná druhá aplikace nebo balíček, který by uživatel musel udržovat v aktuálním stavu. Pokud je program kompilován pro Windows na architektuře x86, koncový uživatel potřebuje pouze operační systém Windows běžící na architektuře x86. Navíc předkompilovaný balíček může běžet rychleji než překladač kompilující zdrojový kód v reálném čase.

Video dne

Nevýhoda: Specifická pro hardware

Protože kompilátor překládá zdrojový kód do určitého strojového jazyka, programy musí být speciálně zkompilovaný pro OS X, Windows nebo Linux, stejně jako specificky pro 32-bit nebo 64-bit architektury. Pro programátora nebo softwarovou společnost, která se snaží dostat produkt k co nejširšímu publiku, to znamená udržovat více verzí zdrojového kódu pro stejnou aplikaci. To má za následek více času stráveného údržbou zdrojového kódu a další potíže při vydání aktualizací.

Výhoda: Optimalizace hardwaru

Zatímco uzamčení v konkrétním hardwarovém balíčku má své stinné stránky, kompilace programu může také zvýšit jeho výkon. Uživatelé mohou kompilátorům poslat konkrétní možnosti týkající se podrobností o hardwaru, na kterém bude program běžet. To umožňuje kompilátoru vytvořit kód strojového jazyka, který nejúčinněji využívá specifikovaný hardware, na rozdíl od generičtějšího kódu. To také umožňuje pokročilým uživatelům optimalizovat výkon programu na jejich počítačích.

Nevýhoda: Doba kompilace

Jednou z nevýhod kompilátoru je, že musí kompilovat zdrojový kód. Zatímco kompilace malých programů, které mnoho začínajících programátorů kóduje, trvá triviální množství času, u větších sad aplikací může jejich kompilace trvat značné množství času. Když programátoři nemají na práci nic jiného, ​​než čekat na dokončení kompilátoru, může se tento čas sčítat – zvláště během fázi vývoje, kdy je nutné zkompilovat kód za účelem testování funkčnosti a odstraňování problémů závady.