5.3. Köztes nyelvi értelmezők, futásidőben fordított programok
A programkód hordozhatóságának
(más operációs rendszeren, más processzoron való futtatásnak) növekvő igénye
miatt a 2000-év környékén létrehozták az interpreterrel működő programoknak egy
csoportját az úgynevezett köztes nyelvi
értelmezőket. Ebben a környezetben írt programok készítésének módja ötvözi az
előre lefordított program és az interpretált program előnyeit és kicsit a
hátrányait is. A köztes nyelv (Intermediate Language, bájt kód) az assembly
nyelvhez nagyon hasonló, de processzor független (absztrakt) elemi utasításokat
használ. Az utasítások sok esetben 1-2 valódi processzor gépi utasítássá
átfordíthatóak, így az interpretáló rész, és a futtató környezet - amely a
köztes nyelvi kódot a processzor számára futás időben átfordítja - kicsi és gyors, egy mai számítógépnek már nem
jelent terhelést. A program készítésének és futtatásának lépései ebben az
esetben:
- Forráskódok elkészítése szövegszerkesztővel
- Forráskódok
lefordítása a köztes nyelvre.
(A köztes nyelvű állományok és futtató környezetek telepítése a számítógép(ek)re) - A program futtatásakor a köztes nyelven írt programrészek akkor fordulnak át valódi gépi kódú utasításokra, amikor éppen szükség van rájuk. A külső programkódok linkelése is ekkor történik meg.
- Tesztelés és javítás akár futás közben is.
Előnye, hogy a köztes nyelvi kód a futtatókörnyezettől függ és nem az operációs rendszertől vagy a hardvertől, így jól hordozható programot kapunk. A hibakeresést segíti, hogy futásidőben a program megváltoztatható, nem kell az egészet újra lefordítani. Hátránya, hogy a program indulása lassabb, a futásidőben történő első fordítás miatt, illetve a kód szellemi védelme is nehézkes.
Jellemző programozási nyelvek: Java, C#, VB.NET