Gemeinsame Sprachinfrastruktur - Common Language Infrastructure

Gemeinsame Sprachinfrastruktur
ISO/IEC 23271: 2012(E)
Status Veröffentlicht
Jahr begonnen 2000 ; Vor 21 Jahren ( 2000 )
Erstmals veröffentlicht 2001 ; Vor 20 Jahren (Ecma) und 2003 ; Vor 18 Jahren (ISO) ( 2001 ) ( 2003 )
Letzte Version Sechste Ausgabe
Juni 2012 ; Vor 9 Jahren ( 2012-06 )
Organisation Entwickelt von: Microsoft , Hewlett-Packard , Intel und anderen
Standardisiert von: Ecma , ISO
Ausschuss ISO/IEC JTC 1/SC 22
Domain Gemeinsame Sprache ( plattformübergreifend )
Lizenz RAND
Abkürzung CLI
Webseite ECMA-335 ,
ISO/IEC 23271

Die Common Language Infrastructure ( CLI ) ist eine offene Spezifikation und ein technischer Standard, der ursprünglich von Microsoft entwickelt und von ISO ( ISO/IEC 23271 ) und Ecma International ( ECMA 335 ) standardisiert wurde und ausführbaren Code und eine Laufzeitumgebung beschreibt, die mehrere Hochsprachen ermöglicht auf verschiedenen Computerplattformen verwendet werden, ohne für bestimmte Architekturen umgeschrieben zu werden. Dies impliziert, dass es plattformunabhängig ist. Das .NET Framework , .NET und Mono sind Implementierungen des CLI. Das Metadatenformat wird auch verwendet, um die API- Definitionen anzugeben, die von der Windows-Runtime bereitgestellt werden .

Überblick

Visueller Überblick über die Common Language Infrastructure (CLI)

Die CLI-Spezifikation beschreibt unter anderem die folgenden vier Aspekte:

Das Common Type System (CTS)
Eine Reihe von Datentypen und Operationen, die von allen CTS-kompatiblen Programmiersprachen verwendet werden .
Die Metadaten
Informationen über die Programmstruktur sind sprachunabhängig , sodass sie zwischen Sprachen und Tools referenziert werden können, was die Arbeit mit Code erleichtert, der in einer Sprache geschrieben wurde, die der Entwickler nicht verwendet.
Die Common Language Specification (CLS)
Die CLI sollte dem Satz von Basisregeln entsprechen, die für jedes Sprachen-Targeting gelten, da diese Sprache mit anderen CLS-kompatiblen Sprachen zusammenarbeiten sollte. Die CLS-Regeln definieren eine Teilmenge des Common Type Systems.
Das virtuelle Ausführungssystem (VES)
Das VES lädt und führt CLI-kompatible Programme aus, wobei die Metadaten verwendet werden, um separat generierte Codeteile zur Laufzeit zu kombinieren.

Alle kompatiblen Sprachen kompilieren zu Common Intermediate Language (CIL), einer Zwischensprache , die von der Plattformhardware abstrahiert wird. Wenn der Code ausgeführt wird, kompiliert das plattformspezifische VES die CIL entsprechend der spezifischen Hardware und des Betriebssystems in die Maschinensprache .

Standardisierung und Lizenzierung

Im August 2000 arbeiteten Microsoft , Hewlett-Packard , Intel und andere daran, CLI zu standardisieren. Im Dezember 2001 wurde es von der Ecma ratifiziert , die ISO- Standardisierung folgte im April 2003.

Microsoft und seine Partner halten Patente für CLI. Ecma und ISO verlangen, dass alle für die Umsetzung wesentlichen Patente unter „ angemessenen und nichtdiskriminierenden (RAND) Bedingungen “ zur Verfügung gestellt werden. Es ist üblich, dass für die RAND-Lizenzierung eine Lizenzgebühr gezahlt wird, was bei Mono Anlass zur Sorge geben könnte . Bis Januar 2013 haben weder Microsoft noch seine Partner Patente identifiziert, die für CLI-Implementierungen, die den RAND-Bedingungen unterliegen, wesentlich sind.

Im Juli 2009 hat Microsoft C# und CLI zu der Liste der Spezifikationen hinzugefügt, für die das Microsoft Community Promise gilt, sodass jeder bestimmte Editionen der Standards sicher implementieren kann, ohne eine Patentklage von Microsoft befürchten zu müssen. Die Implementierung des CLI-Standards erfordert die Konformität mit einem der unterstützten und definierten Profile des Standards, von denen das Minimum das Kernel-Profil ist. Das Kernel-Profil ist eigentlich ein sehr kleiner Satz von Typen, die im Vergleich zur bekannten Kernbibliothek von Standard-.NET-Installationen unterstützt werden müssen. Die Konformitätsklausel der CLI ermöglicht jedoch die Erweiterung des unterstützten Profils durch das Hinzufügen neuer Methoden und Typen zu Klassen sowie das Ableiten von neuen Namespaces. Das Hinzufügen neuer Member zu Schnittstellen ist jedoch nicht möglich. Dies bedeutet, dass die Funktionen der CLI verwendet und erweitert werden können, solange die konforme Profilimplementierung das Verhalten eines Programms, das auf diesem Profil ausgeführt werden soll, nicht ändert, während nicht spezifiziertes Verhalten von Programmen, die speziell für diese Implementierung geschrieben wurden, zugelassen wird.

Im Jahr 2012 haben Ecma und ISO die Neuauflage des CLI-Standards veröffentlicht, die nicht vom Community Promise abgedeckt wird.

Implementierungen

  • .NET Framework ist die ursprüngliche kommerzielle Implementierung der CLI von Microsoft. Es unterstützt nur Windows. Es wurde im November 2020 von .NET abgelöst.
  • .NET ist der kostenlose und Open-Source-Multiplattform-Nachfolger von .NET Framework, veröffentlicht unter der MIT-Lizenz
  • .NET Compact Framework ist Microsofts kommerzielle Implementierung der CLI für tragbare Geräte und Xbox 360 .
  • .NET Micro Framework ist eine Open-Source-Implementierung der CLI für ressourcenbeschränkte Geräte.
  • Mono ist eine alternative Open-Source-Implementierung von CLI und begleitenden Technologien, die hauptsächlich für die Mobil- und Spieleentwicklung verwendet wird.

Siehe auch

Anmerkungen

Verweise

Externe Links