Kompilátor je softwarový program, který převádí počítačový programový kód napsaný lidským programátorem na binární kód (strojový kód), který lze pochopit a provést pomocí konkrétního CPU. Akt přeměny zdrojový kód do strojového kódu se nazývá „kompilace“. Když je celý kód transformován najednou, než dosáhne platforem, které jej spouští, proces se nazývá kompilace s časovým předstihem (AOT).
Které programovací jazyky používají kompilátor AOT?
Mnoho známých programovacích jazyků vyžaduje kompilátor včetně:
- Fortran
- Pascal
- Shromáždění jazyk
- C
- C ++
- Rychlý
Před Java a C # byly všechny počítačové programy buď kompilovány, nebo interpretováno.
A co interpretovaný kód?
Interpretovaný kód provádí instrukce v programu bez jejich kompilace do strojového jazyka. Interpretovaný kód analyzuje zdrojový kód přímo, je spárován s virtuálním strojem, který překládá kód pro stroj v okamžiku provedení, nebo využívá předkompilovaný kód. Javascript je obvykle interpretován.
Kompilovaný kód běží rychleji než interpretovaný kód, protože v době, kdy se akce koná, nemusí dělat žádnou práci. Práce je již hotová.
Které programovací jazyky používají kompilátor JIT?
Jáva a C # používají kompilátory just-in-time. Kompilátory Just-in-time jsou kombinací kompilátorů a tlumočníků AOT. Po napsání programu Java kompilátor JIT převede kód na bajtový kód, nikoli na kód, který obsahuje pokyny pro procesor konkrétní hardwarové platformy. Bajtcode je nezávislý na platformě a lze jej odeslat a spustit na jakékoli platformě, která podporuje Javu. V jistém smyslu je program kompilován ve dvoustupňovém procesu.
Podobně C # používá kompilátor JIT, který je součástí Common Language Runtime, který řídí provádění všech aplikací .NET. Každá cílová platforma má kompilátor JIT. Dokud bude platforma srozumitelná středně pokročilému převodu bytového kódu, program se spustí.
Výhody a nevýhody kompilace AOT a JIT
Kompilace dopředu (AOT) poskytuje rychlejší čas spuštění, zejména když se většina kódu spustí při spuštění. Vyžaduje však více paměti a více místa na disku. Kompilace JOT musí cílit na nejméně schopné ze všech možných prováděcích platforem.
Kompilace Just-in-time (JIT) profiluje cílovou platformu, zatímco běží a re-kompiluje za běhu, aby poskytla lepší výkon. JIT generuje vylepšený kód, protože se zaměřuje na aktuální platformu, i když spuštění obvykle trvá déle než kompilovaný kód AOT.