5.3. Köztes nyelvi értelmezők, futásidőben fordított programok

iDevice ikon
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:
  1. Forráskódok elkészítése szövegszerkesztővel
  2. 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)
  3. 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.
  4. 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