Laufzeitumgebung

Eine Laufzeitumgebung (; Abkürzung: RTE oder seltener auch RE), auch Ausführungsumgebung oder seltener Ablaufumgebung, beschreibt die zur Laufzeit von Computerprogrammen verfügbaren und festgelegten Voraussetzungen eines bestimmten Laufzeitsystems (). Dieses ist durch die elementaren Bestandteile der Programmiersprache wie das Verhalten von Sprachkonstrukten und weitere Funktionen wie Typprüfung, Debugging, Codegenerierung und -optimierung definiert. Zur Laufzeitumgebung gehören weiterhin Laufzeitbibliothek, Standardbibliotheken, Programmierschnittstellen, Laufzeitvariablen sowie auf Hard- und Softwarekomponenten über Betriebssystemfunktionen.

Weitere Einzelheiten 
Eine Laufzeitumgebung lädt von Anwendungsprogrammierern entwickelte Programme und lässt diese auf einer Plattform ablaufen, für welche die Laufzeitumgebung gemacht worden ist. Damit stellt sie selbst eine kleine „Plattform“ dar, auf der Programme aufsetzen können.

In manchen Fällen ist eine plattformunabhängige und dadurch portable virtuelle Maschine Bestandteil einer Laufzeitumgebung. Ein bekanntes Beispiel hierfür ist die Programmiersprache Java. Die Laufzeitumgebung eines Java-Programms wird Java Runtime Environment genannt und vereinigt die Java-Klassenbibliotheken, die z. B. für Ein- und Ausgabe verwendet werden, und die Java Virtual Machine, die für die Ausführung des Java-Bytecodes verantwortlich ist.

Ein anderes Beispiel ist Microsofts .Net-Framework. Die .NET Common Language Runtime (CLR) ist (bei neueren Windows-Betriebssystemen) die Laufzeitumgebung für Programme, die in C#, Visual Basic .NET, J#, JScript .NET und C++/CLI geschrieben wurden.

Im IBM-Großrechner-Betriebssystem z/OS ist das sogenannte „Language Environment“ die gemeinsame Laufzeitumgebung für Programme, welche u. a. in COBOL, PL/I, C und Fortran programmiert sein können.

Basis-Funktionen 
Beispiele für die Basis- oder Grund-Funktionen einer Laufzeitumgebung sind:
 Lesen und Schreiben von Dateien
 Daten über Netzwerke transportieren
 Ein- und Ausgabegeräte steuern
 Daten verwalten
 Sortieren und Suchen

Plattformunabhängigkeit 
Beispiele, in denen Laufzeitumgebungen Programmen Plattformunabhängigkeit ermöglichen, sind:
 Java-Applets, die von verschiedenen Webbrowsern auf verschiedenen Betriebssystemen in verschiedenen Implementierungen der Java-Laufzeitumgebungen ausgeführt werden
 Windows-Programme, die mit Wine auf Unix-Umgebungen (Linux und verschiedene BSD-Varianten, Solaris sowie macOS) unter den x86-Architekturen IA-32 (32-Bit-x86) und x64 (64-Bit-x86) laufen
 .NET-Programme, die in der .NET-Reimplementierung Mono unter Linux laufen
 XUL-Programme, die mit der XULRunner-Laufzeitumgebung ausgeführt werden
 Linux-Programme, die auf UNIX-Betriebssystemen wie BSD, Solaris und SCO-Unix in einer speziell angepassten Linux-Umgebung laufen
 IBCS-Programme, die mittels der IBCS-Unterstützung (bestehend aus Kernel-Umgebung, angepassten Systemaufrufen und Laufzeitbibliotheken) unter Linux laufen
 32-Bit-Linux-Programme, die zusammen mit den zugehörigen 32-Bit-Bibliotheken in der 32-Bit-Umgebung von 64-Bit-Linux-Kerneln laufen. Die 32-Bit-Laufzeitumgebung besteht dabei aus der Unterstützung der 64-Bit-Prozessoren von Intel für 32-Bit-Code, Kernel-Unterstützung für diesen 32-Bit-Modus, 32-Bit-Betriebssystemaufrufen und einem 32-Bit-dynamischen Linker.
 DOS-Programme, die unter OS/2, UNIX und Linux im DOSEMU laufen
 16-Bit-Windows-Programme, die unter 32-Bit-Windows, und 32-Bit-Windows-Programme, die unter 64-Bit-Windows laufen

Siehe auch 
 Engine

Einzelnachweise 

Programmierung
Programmierwerkzeug
Virtualisierung