A végrehajtási környezet vagy futásidejű szoftver a megadott programozási nyelven írt számítógépes programok végrehajtásáért felelős . A futásidejű program olyan programfuttatási szolgáltatásokat nyújt, mint a bemenet-kimenet , a folyamat leállítása, az operációs rendszer szolgáltatásainak használata , a számítási hibák feldolgozása, az események előállítása, a másik programozási nyelven kínált szolgáltatások használata, a hibakeresés, a profilalkotás és a szemétgyűjtés .
A fejlesztő szoftvertől eltérően, amely lehetővé teszi az alkalmazás programozását és fejlesztését, a futási idő csak egy program futtatását teszi lehetővé. A futásidő virtuális gépnek tekinthető : ahogy a natív kódot a processzor, az objektumkódot a futás is végrehajtja. A futásidőt ezután az objektumkód futtatására használják azáltal, hogy a natív ad hoc kódot elérhetővé teszi a processzor számára végrehajtásra.
A meghatározás informális, például az IWarp anatómia című könyv a futást a következőképpen határozza meg : "A futásidőt úgy definiáljuk, mint az iWarp rendszereken futó programok futtatásáért felelős szoftverösszetevőt, ez megkönnyíti a programok futtatását, mivel a részletek rossz elrejtésével a gép . " .
A futásidejű programozási nyelv úgy valósul meg, hogy lehetővé teszi az ezen a nyelven írt programok végrehajtását. Olyan szolgáltatásokat kínál, mint input-output , folyamatok leállítása, operációs rendszer szolgáltatások használata , számítási hibák kezelése, események előállítása, egy másik programozási nyelven kínált szolgáltatások használata, hibakeresés, profilalkotás és szemétszállítás .
Az egyik első futásidejű programozási nyelv a PL / 1 volt 1972-ben. A program összeállításakor az egyszerű PL / 1 nyelvű utasításokat gépi nyelven fordították le a megfelelő utasításokra, míg az összetett utasításokat lefordították. a futásidejű funkciók felhasználása. Ez a konstrukció lehetővé tette a gépnyelvi program méretének csökkentését.
A futásidő az értelmező : értelmezi a forráskódot, manipulálja a változókat, fenntartja a memóriát és kezeli a futásidejű hibákat.
A futási idő korlátai kevésbé egyértelműek: a kódot közvetlenül a processzor hajtja végre; ennek a kódnak azonban néha szüksége lehet bizonyos futásidejű szolgáltatásokra, például az objektum létrehozására , a típusellenőrzésre és az objektumorientált programozási nyelvekből történő szemétszállításra.
Hagyományosan a különböző programozási nyelvek különböző futásidőket használnak, például a Standard C Library , a Java Runtime Environment és a Common Language Runtime . A futási időt a programozó rendelkezésére álló szabványos könyvtár kísérheti . A futásidő végrehajtja a nyelv alapvető funkcionalitását, míg a standard könyvtár jellemzően magában a nyelven van megírva.
A C Standard Library egy ANSI szabványos futási idő, amelyet nagyrészt a Unix operációs rendszer ihletett. A szabványosítás előtt minden C nyelvű fordító felajánlotta saját függvénykönyvtárát, és az adott fordítóhoz írt programokat nem lehetett összeállítani egy másik fordítóval, annak ellenére, hogy ugyanazon a programozási nyelven voltak.
A Common Language Runtime ellenőrzi a különböző programozási nyelvű programok végrehajtását és szolgáltatásokat nyújt. A szolgáltatásokat az érintett programozási nyelvtől függően különböző módon mutatják be, azonban a funkciók köre minden nyelven megegyezik, és ugyanaz a szoftver valósítja meg őket: a Common Language Runtime, további 2500 modulos osztálykönyvtár kíséretében .
A Lisp, a Smalltalk, az ML és a Prolog programozási nyelvekben a nyelv legtöbb funkcióját a futásideje kínálja, a programozó számára elérhető szabványos könyvtár kíséretében.