Et eksekveringsmiljø eller runtime er software, der er ansvarlig for udførelsen af computerprogrammer skrevet på et givet programmeringssprog . En runtime leverer programudførelsestjenester såsom input-output , proceslukning, brug af operativsystemtjenester , behandling af beregningsfejl, generering af begivenheder, brug af tjenester, der tilbydes på et andet programmeringssprog, fejlretning, profilering og affaldsindsamling .
I modsætning til udviklingssoftware, der giver dig mulighed for at programmere og udvikle din applikation, tillader en runtime kun udførelsen af et program. En runtime kan ses som en virtuel maskine : ligesom native-kode udføres af processoren, udføres objekt-code af runtime. Runtime bruges derefter til at udføre objektkode ved at gøre den native ad hoc- kode tilgængelig for processoren til udførelse.
Definitionen er uformel, for eksempel definerer bogen IWarp anatomi en runtime som følger: "vi definerer runtime som softwarekomponent, der er ansvarlig for at køre programmer på iWarp-systemer, det gør det lettere at køre programmer ved at skjule maskinens detaljer dårlige materiale . " .
En runtime implementerer et programmeringssprog ved at tillade udførelse af programmer skrevet på dette sprog. Det tilbyder tjenester som input-output , nedlukning af processer, brug af operativsystemtjenester , behandling af beregningsfejl, generering af begivenheder, brug af tjenester, der tilbydes på et andet programmeringssprog, fejlretning, profilering og affaldsindsamling .
Et af de første programmeringssprog, der arbejdede med en runtime, var PL / 1 i 1972. Da programmet blev samlet, blev enkle instruktioner på PL / 1-sprog oversat til de tilsvarende instruktioner på maskinsprog, mens komplekse instruktioner blev oversat til. brug af funktionerne i runtime. Denne konstruktion gjorde det muligt at reducere størrelsen på maskinens sprogprogram.
Runtiden er tolken : den fortolker kildekoden, manipulerer variablerne, reserverer hukommelse og håndterer kørselsfejl.
Grænserne for kørselstiden er mindre klare: koden udføres direkte af processoren; dog kan denne kode nogle gange have brug for visse funktioner leveret af kørselstiden, såsom oprettelse af objekter , typekontrol og affaldsindsamling fra objektorienterede programmeringssprog.
Traditionelt bruger forskellige programmeringssprog forskellige driftstider, for eksempel Standard C-biblioteket , Java Runtime-miljøet og Common Language Runtime . Runtiden kan ledsages af et standardbibliotek, der er tilgængeligt for programmøren. Runtime implementerer sprogets grundlæggende funktionalitet, mens standardbiblioteket typisk er skrevet på selve sproget.
C Standard Library er en ANSI- standardiseret runtime, der stort set er inspireret af Unix-operativsystemet. Før standardisering tilbød hver C-sprogkompilator sit eget bibliotek med funktioner, og programmer skrevet til en given kompilator kunne ikke kompileres med en anden kompilator, selvom det var på det samme programmeringssprog.
Den Common Language Runtime styrer udførelsen af programmer i forskellige programmeringssprog og leverer tjenesteydelser. Tjenesterne eksponeres på en anden måde afhængigt af det pågældende programmeringssprog, men rækkevidden af funktioner er den samme på alle sprog, og de implementeres af den samme software: Common Language Runtime ledsaget af et ekstra klassebibliotek med 2500 moduler .
I programmeringssprogene Lisp, Smalltalk, ML og Prolog tilbydes de fleste af sprogets funktionaliteter af runtime ledsaget af et standardbibliotek til rådighed for programmøren.