Common Language Runtime
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
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
- Don Box, Chris Sells: Essential .NET, Volume 1: The Common Language Runtime, Addison-Wesley 2002, ISBN 978-0201734119
- Kevin Burton: .NET Common Language Runtime Unleashed, SAMS 2002, ISBN 978-0672321245
- Jeffrey Richter: CLR via C#, 4. Auflage, Microsoft Press 2012, ISBN 978-0735667457
- Dana L. Wyatt, Robert J. Oberg: Introduction to Visual Basic Using .NET, Prentice Hall 2002, ISBN 978-0-13-041804-3
Einzelnachweise
- ↑ Mohammad Rahman: C# Deconstructed: Discover how C# works on the .NET Framework, Apress 2014, ISBN 978-1430266709, S. 16
- ↑ Neil McAllister: Microsoft takes lid off .Net Common Language Runtime sauce, in: The Register vom 3. Februar 2015, abgerufen am 9. Dez. 2015
- ↑ Holger Schwichtenberg: Zwei auf einen Streich, in: Windows Developer Nr. 10/2015, S. 8 ff.