dbo:abstract
|
- A futásidejű fordítás vagy röpfordítás (angolul just-in-time compilation, azaz JIT), a bájtkód-fordított rendszerek teljesítményének növelésére szolgáló technika. A futási időben fordítja natív kódra. A futásidejű fordításhoz két korábbi futtató környezet adta az ötletet: a bájtkódfordítás (bytecode compilation) és a dinamikus fordítás (dynamic compilation). Egy bájtkódfordított rendszerben (ilyen a Java, a .NET nyelvek, Perl, a GNU ) a forráskódot egy fordítják, amit bájtkódnak neveznek. A bájtkód nem gépi kód egy adott processzorra, így hordozható a különböző számítógép-architektúrák között. A bájtkódot aztán értelmezik vagy egy virtuális gépen futtatják. A dinamikus fordítókörnyezetben a fordító futás közben végzi feladatát. Például a legtöbb Common Lisp rendszer rendelkezik egy compile függvénnyel, ami képes a futás közben keletkezett új függvények lefordítására. Az előnye az interaktív hibakeresés, viszont ez az előny kész rendszerek esetén nem túl hasznos. Egy JIT környezetben a bájtkódra fordítás az első lépés, azaz a forráskód hordozható és optimalizálható köztes reprezentációra alakítása. A bájtkódot telepítik a célrendszerre. A kód végrehajtása során a futtatókörnyezet fordítója fordítja azt natív gépi kódra. Ezt meg lehet fájl vagy függvény alapon tenni: a függvényeket csak végrehajtáskor szükséges lefordítani, (innen jön a „just-in-time”, éppen időben kifejezés). A cél a natív- és a bájtkódfordítás előnyeinek egyesítése. Az eredeti forráskód feldolgozása és az alapvető optimalizálás fordítási időben történik, jóval a futtatás előtt – a bájtkódról gépi kódra történő fordítás jóval gyorsabb, mint forráskódról. A keletkezett bájtkód hordozható, nem úgy, mint az architektúrához kötött gépi kód. A bájtkódról gépi kódra fordítók megírása is egyszerűbb, mivel a bájtkódfordító elvégzi a munka nehezét. (hu)
- A futásidejű fordítás vagy röpfordítás (angolul just-in-time compilation, azaz JIT), a bájtkód-fordított rendszerek teljesítményének növelésére szolgáló technika. A futási időben fordítja natív kódra. A futásidejű fordításhoz két korábbi futtató környezet adta az ötletet: a bájtkódfordítás (bytecode compilation) és a dinamikus fordítás (dynamic compilation). Egy bájtkódfordított rendszerben (ilyen a Java, a .NET nyelvek, Perl, a GNU ) a forráskódot egy fordítják, amit bájtkódnak neveznek. A bájtkód nem gépi kód egy adott processzorra, így hordozható a különböző számítógép-architektúrák között. A bájtkódot aztán értelmezik vagy egy virtuális gépen futtatják. A dinamikus fordítókörnyezetben a fordító futás közben végzi feladatát. Például a legtöbb Common Lisp rendszer rendelkezik egy compile függvénnyel, ami képes a futás közben keletkezett új függvények lefordítására. Az előnye az interaktív hibakeresés, viszont ez az előny kész rendszerek esetén nem túl hasznos. Egy JIT környezetben a bájtkódra fordítás az első lépés, azaz a forráskód hordozható és optimalizálható köztes reprezentációra alakítása. A bájtkódot telepítik a célrendszerre. A kód végrehajtása során a futtatókörnyezet fordítója fordítja azt natív gépi kódra. Ezt meg lehet fájl vagy függvény alapon tenni: a függvényeket csak végrehajtáskor szükséges lefordítani, (innen jön a „just-in-time”, éppen időben kifejezés). A cél a natív- és a bájtkódfordítás előnyeinek egyesítése. Az eredeti forráskód feldolgozása és az alapvető optimalizálás fordítási időben történik, jóval a futtatás előtt – a bájtkódról gépi kódra történő fordítás jóval gyorsabb, mint forráskódról. A keletkezett bájtkód hordozható, nem úgy, mint az architektúrához kötött gépi kód. A bájtkódról gépi kódra fordítók megírása is egyszerűbb, mivel a bájtkódfordító elvégzi a munka nehezét. (hu)
|