Laufzeitbibliothek

Der Begriff Laufzeitbibliothek (englisch runtime library) bezeichnet in der Informatik eine Programmbibliothek (Sammlung von Softwarefunktionen), die innerhalb eines Computerprogramms die in einer Programmiersprache vorgesehenen Funktionen zur Zeit der Ausführung des Programms (Laufzeit) realisiert, soweit sie nicht vom Compiler direkt in Maschinencode übersetzt werden. Dazu gehören oft z. B. Funktionen zur Ein- und Ausgabe, Speicherverwaltung oder für Gleitkommaberechnungen wie etwa die Quadratwurzel.

Wenn der Quellcode eines Computerprogramms von einem Compiler in die jeweilige Zielsprache übersetzt wird, so würde es zu kaum tragbarer Vergrößerung des Programmcodes führen, wenn für jede Anweisung im Programm und jeden Aufruf einer eingebauten Funktion jeweils an der entsprechenden Stelle der vollständige Programmcode in der Zielsprache erzeugt werden müsste. Stattdessen erzeugt der Compiler oft Aufrufe von compilerspezifischen Hilfsfunktionen, die dem Anwendungsprogrammierer meist nicht direkt zur Verfügung stehen und deren Implementierungen sich in der Laufzeitbibliothek befinden. Die Laufzeitbibliothek kann nach Ermessen des Compilerherstellers oft auch Teile der Standardbibliothek des jeweiligen Compilers enthalten oder mit dieser kombiniert sein.

Abhängig von Programmiersprache und Implementierung kann die Laufzeitbibliothek auch Laufzeitüberprüfungen, z. B. Grenzen von Arrays oder dynamische Typprüfungen, Ausnahmebehandlung und weitere Funktionen zur Fehlersuche (Debugging) enthalten.

Die Laufzeitbibliothek realisiert normalerweise viele Funktionen unter Zugriff auf das Betriebssystem. Viele Programmiersprachen haben eingebaute Funktionen, die nicht zwangsläufig im Compiler realisiert sein müssen, sondern ebenfalls in der Laufzeitbibliothek realisiert sein können. Die Grenze zwischen Compiler und Laufzeitbibliothek liegt also im Ermessen des Compilerherstellers. Aus diesen Gründen ist die Laufzeitbibliothek immer compilerspezifisch und plattformspezifisch.

Nicht verwechselt werden darf das Konzept der Laufzeitbibliothek mit dem einer normalen Programmbibliothek, wie sie von einem Anwendungsprogrammierer erstellt oder einem Dritten geliefert wird, oder einer dynamischen Bibliothek, was eine zur Laufzeit gelinkte Programmbibliothek bezeichnet. Zum Beispiel benötigt die Programmiersprache C nur eine minimale Laufzeitbibliothek, schreibt aber die C-Standard-Bibliothek von Funktionen vor, die jede C-Implementierung mitbringen muss.

Einige modernere Programmiersprachen wie Java benutzen anstatt einer einfachen Laufzeitbibliothek eine komplexere Laufzeitumgebung.