A fordító olyan szoftver, amely az emberi programozó által írt számítógépes programozási kódot bináris kódmá (gépi kódmá) alakítja, amelyet egy adott CPU megért és meg tudja valósítani. Az átalakulás cselekedete forráskód a gépi kódba "fordítás". Amikor az összes kódot egy időben átalakítják, mielőtt elérnék azt futtató platformokat, a folyamatot idő előtti (AOT) fordításnak hívják.
Mely programozási nyelvek használnak AOT-fordítót?
Sok jól ismert programozási nyelvnek szüksége van egy fordítóra, beleértve:
- Fortran
- Pascal
- Assembly nyelv
- C
- C ++
- Gyors
A Java és a C # előtt az összes számítógépes programot vagy összeállították, vagy pedig értelmezhető.
Mi a helyzet az értelmezett kóddal?
Az értelmezett kód végrehajtja az utasításokat egy programban anélkül, hogy azokat gépi nyelvre fordítanák. Az értelmezett kód közvetlenül elemzi a forráskódot, párosul egy virtuális géppel, amely lefordítja a gép kódját a végrehajtás idején, vagy kihasználja az előre összeállított kódot. Javascript általában értelmezik.
A lefordított kód gyorsabban fut, mint az értelmezett kód, mivel a művelet végrehajtásának pillanatában nem kell semmilyen munkát tennie. A munka már megtörtént.
Mely programozási nyelvek használják a JIT fordítót?
Jáva és a C # csak az időben fordítókat használ. A pontos időben történő fordítók az AOT fordítók és tolmácsok kombinációja. A Java program megírása után a JIT fordító a kódot bájtkódká alakítja, nem pedig olyan kódmá, amely egy adott hardverplatform processzorának utasításokat tartalmazza. A bájtkód platformfüggetlen, és bármilyen platformon elküldhető és futtatható, amely támogatja a Java-t. Bizonyos értelemben a program két szakaszból áll.
Hasonlóképpen, a C # egy JIT fordítót is használ, amely a Common Language Runtime része, amely kezeli az összes .NET alkalmazás végrehajtását. Minden célplatformnak van JIT fordítója. Mindaddig, amíg a platform megérti a közbenső bájtkód-nyelv konvertálást, a program fut.
Az AOT és a JIT összeállításának előnyei és hátrányai
Az idő előtti (AOT) fordítás gyorsabb indítási időt biztosít, különösen akkor, ha a kód nagy része végrehajtáskor indul. Ez azonban több memóriát és több lemezterületet igényel. A JOT-összeállításnak a lehető legkevésbé képesnek kell lennie az összes lehetséges végrehajtási platformon.
A Just-in-time (JIT) fordítás profilozza a célplatformot, miközben repüléssel fut és újra összeállítja a jobb teljesítményt. A JIT továbbfejlesztett kódot generál, mivel az a jelenlegi platformon célozza meg, bár általában több időbe telik a futtatása, mint az AOT által összeállított kód.