Runtime knihovna

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Runtime knihovna je v informatice speciální knihovna používaná kompilátorem k implementování specifických funkcí, zabudovaných přímo v programovacím jazyce, za běhu programu (odtud runtime). Nejčastěji obsahuje funkce používané pro obsluhu standardního vstupu a výstupu z programu nebo správu paměti přidělované operačním systémem.

V okamžiku kdy je kompilátorem zdrojový kód programu překládán do příslušného cílového jazyka by mohlo dojít k extrémnímu nárůstu počtu řádků kódu, v případě, že by každý příkaz či každé volání předdefinované funkce v původním programu způsobilo vložení celého příslušného podprogramu v cílovém jazyce. Proto kompilátor, než aby vkládal duplicitní řádky kódu, využívá zvláštní funkce uložené v runtime knihovně, ty jsou programátorovi nedostupné a závislé právě na daném kompilátoru. V závislosti na tvůrci kompilátoru, pak může nastat situace, kdy runtime knihovna obsahuje také standardní knihovnu příslušného kompilátoru nebo naopak je runtime knihovna vložena do knihovny standardní.

Také některé funkce, které lze provádět pouze za běhu programu (nebo je jejich užití za běhu účinnější a přesnější) jsou implementovány v runtime knihovně, například: některé logické chyby, kontrola překročení hranice alokovaného pole, dynamická typová kontrola, manipulace s výjimkami a případně i ladící mechanismy. To je důvodem, proč jsou některé chyby, vytvořené při kódování, odhaleny, až pří testování v reálném prostředí při práci s reálnými daty i přesto, že došlo k sofistikované kontrole již v době kompilace i testování před vydáním programu. V tomto případě je uživateli zobrazeno nežádoucí běhové chybové hlášení.

Runtime knihovna nejčastěji realizuje většinu svých operací pomocí přístupu k operačnímu systému. Celá řada programovacích jazyků má zabudované funkce, které nemusí být nutně realizovány kompilátorem, ale mohou být vloženy do runtime knihovny. Takže hranice mezi runtime a standardní knihovnou je silně závislá na tvůrci kompilátoru, ale vždy je nutné pamatovat na to, že runtime knihovna je závislá jak na kompilátoru tak také na počítačové platformě (hardware, operační systém...).

Koncepce runtime knihovny by se neměla zaměňovat s koncepcí běžně naprogramovaných knihoven (např. knihovny vytvořené programátorem aplikace, knihovny třetích stran či dynamické knihovny), tedy knihoven přilinkovaných za běhu programu. Například programovací jazyk C využívá pouze miniaturní runtime knihovnu (obvykle se nazývá crt0), ale definuje velkou standardní knihovnu (standardní knihovna jazyka C), která musí být přidána ke každé implementaci.

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Runtime library na anglické Wikipedii.