Common Language Runtime

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 30. Oktober 2016 um 12:22 Uhr durch 2003:c6:33ca:9b70:cc93:96a3:9280:e739 (Diskussion) (Adaptionen: wurde verschoben.). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Common Language Runtime, kurz CLR, ist der Name für eine Laufzeitumgebung, in der .NET-Anwendungen ausgeführt werden. Sie ist ein zentraler Bestandteil des .NET Frameworks. Dem Namen entsprechend, handelt es sich um eine Laufzeitumgebung, die von Programmcode benutzt werden kann, der in unterschiedlichen Programmiersprachen geschrieben wurde.

Erklärung und Funktionsweise

Vereinfachtes Funktionsprinzip der Common Language Runtime im .NET Framework

Der Programmcode wird üblicherweise mit einem sprachspezifischen Compiler in den sog. CIL-Code übersetzt. Dabei handelt es sich um einen Zwischencode, der von der CLR verwaltet wird und der deshalb auch als managed code bezeichnet wird, als verwalteter Code – in Abgrenzung zu unmanaged code bzw. nativem Code. Die CLR enthält einen Just-in-Time-Compiler, der den CIL-Code in solchen nativen Code bzw. Maschinencode übersetzt, d. h. in Code, der von der CPU ausgeführt werden kann. Ergebnis der Übersetzung von CIL-Code in Maschinencode ist eine sog. Assembly, d. h. eine Datei mit der Dateinamenserweiterung exe oder dll.

Die von der CLR angebotenen Dienste können von den Programmiersprachen genutzt werden, in denen die jeweilige Anwendung programmiert wurde. Zu diesen Diensten gehören unter anderem Garbage Collection, Ausnahmebehandlung und die Sicherstellung von Code Access Security. Die CLR ist angewiesen auf das Common Type System, d. h. eine Sammlung von Typen und Funktionen, die in vielen Programmiersprachen unterstützt werden.

Die CLR ist die Implementierung der Komponente Virtual Execution System, die zu dem Standard Common Language Infrastructure gehört, für das .NET Framework.[1]

Adaptionen

Es gibt weitere Laufzeitumgebungen, die die CLR adaptieren und diesen Namen mitverwenden:

  • Mono enthält eine Laufzeitumgebung nach dem Vorbild von der des .NET Frameworks, sie wird mitunter auch als CLR bezeichnet.
  • CoreCLR ist der Name der Laufzeitumgebung, die im modularen, quelloffenen Framework .NET Core verwendet wird.[2]
  • .NET Native enthält eine Laufzeitumgebung, für die auch CLR als Name verwendet wird. Sie kommt bei der Ausführung von Universal Windows Platform Apps für Windows 10 zum Einsatz. Diese Anwendungen werden nicht in CIL-Code ausgeliefert, sondern direkt in nativem Code. Die Just-in-Time-Kompilierung entfällt.[3]

Literatur

Einzelnachweise

  1. Mohammad Rahman: C# Deconstructed: Discover how C# works on the .NET Framework, Apress 2014, ISBN 978-1430266709, S. 16
  2. Neil McAllister: Microsoft takes lid off .Net Common Language Runtime sauce, in: The Register vom 3. Februar 2015, abgerufen am 9. Dez. 2015
  3. Holger Schwichtenberg: Zwei auf einen Streich, in: Windows Developer Nr. 10/2015, S. 8 ff.