Gemeinsame Sprachinfrastruktur

Gemeinsame Sprachinfrastruktur
ISO/IEC 23271: 2012 (e)
Abkürzung Cli
Status Veröffentlicht
Jahr begann 2000; Vor 22 Jahren
Erstmals veröffentlicht 2001; Vor 21 Jahren (ECMA) und 2003; Vor 19 Jahren (ISO/IEC)
Letzte Version Sechste Ausgabe
Juni 2012; vor 10 Jahren
Organisation Entwickelt von: Microsoft, Hewlett Packard, Intel, und andere
Standardisiert durch: ECMA, ISO/IEC
Komitee ISO/IEC JTC 1/SC 22
Domain Gemeinsame Sprache (Plattformübergreifend)
Lizenz Rand
Webseite ECMA-335,
ISO/IEC 23271

Das Gemeinsame Sprachinfrastruktur (Cli) ist offen Spezifikation und Technischer Standard Ursprünglich entwickelt von Microsoft und standardisiert von ISO/IEC (ISO/IEC 23271) und ECMA International (ECMA 335)[1][2] Das beschreibt ausführbarer Code und eine Laufzeitumgebung, die es zulässt Mehrere Sprachen auf hoher Ebene auf unterschiedlich verwendet werden Computerplattformen ohne für bestimmte Architekturen neu geschrieben zu werden. Dies impliziert, dass es plattform agnostisch ist. Das .NET Framework, .NETZ und Mono sind Implementierungen der CLI. Das Metadaten Das Format wird auch verwendet, um das anzugeben API Definitionen von der entlarvt Windows -Laufzeit.[3][4]

Überblick

Visueller Überblick über die gemeinsame Sprachinfrastruktur (CLI)

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

Das Gemeinsames Typsystem (CTS)
Eine Menge von Datentypen und Operationen, die von allen CTS-konformen geteilt werden Programmiersprachen.
Das Metadaten
Informationen zur Programmstruktur sind Sprache-agnostisch, damit es zwischen Sprachen und Tools referenziert werden kann, wodurch es einfach ist, mit Code in einer Sprache zu arbeiten, die der Entwickler nicht verwendet.
Die gemeinsame Sprachspezifikation (CLS)
Die CLI sollte den Grundregeln entsprechen, denen jede Sprachziele, da diese Sprache mit anderen CLS-konformen Sprachen zusammenarbeiten sollte. Die CLS -Regeln sind eine Teilmenge des gemeinsamen Typsystems.
Das Virtual Ausführungssystem (Ves)
Die VEs lädt und führen CLI-kompatible Programme aus, wobei die Metadaten zur Laufzeit separat generierte Codestücke kombiniert werden.

Alle kompatiblen Sprachen kompilieren zu Gemeinsame Zwischensprache (Cil), was ist ein Zwischensprache Das wird aus der Plattformhardware abstrahiert. Wenn der Code ausgeführt wird Maschinensprache gemäß der spezifischen Hardware- und Betriebssystem.

Standardisierung und Lizenzierung

Im August 2000, Microsoft, Hewlett Packard, Intelund andere arbeiteten daran, CLI zu standardisieren. Bis Dezember 2001 wurde es von der ratifiziert ECMA, mit ISO/IEC Standardisierung nach April 2003.

Microsoft und seine Partner haben Patente für CLI. ECMA und ISO/IEC verlangen, dass alle für die Implementierung wesentlichen Patente zur Verfügung gestellt werden. "angemessene und nicht diskriminierende Begriffe (RAND). "Es ist üblich, dass die RAND -Lizenzierung eine Lizenzgebühr verlangt, was Anlass zur Sorge um Sorge darstellen könnte Mono. Ab Januar 2013 haben weder Microsoft noch seine Partner patente identifiziert, die für CLI -Implementierungen von RAND -Bedingungen erforderlich sind.

Ab Juli 2009,[5] Microsoft hinzugefügt C# und CLI zu der Liste der Spezifikationen, dass die Microsoft Community Promise gilt für,[6] So kann jeder bestimmte Ausgaben der Standards sicher implementieren, ohne eine Patentklage von Microsoft zu befürchten. Um den CLI -Standard zu implementieren, erfordert die Konformität mit einem der unterstützten und definierten Profile des Standards, wobei das Minimum das Kernelprofil ist. Das Kernelprofil ist tatsächlich eine sehr kleine Reihe von Typen, die im Vergleich zur bekannten Kernbibliothek der Standard -.NET -Installationen unterstützt werden. Die Konformitätsklausel der CLI ermöglicht jedoch die Erweiterung des unterstützten Profils durch Hinzufügen neuer Methoden und Typen zu Klassen sowie aus neuen Namensspitzen. Es ermöglicht jedoch nicht, neue Mitglieder zu Schnittstellen hinzuzufügen. Dies bedeutet, dass die Merkmale der CLI verwendet und erweitert werden können, solange die Implementierung des konformen Profils das Verhalten eines Programms nicht ändert, das auf diesem Profil ausgeführt wird, und gleichzeitig ein spezifisches Verhalten aus Programmen zulässt, die speziell für diese Implementierung geschrieben wurden.

Im Jahr 2012 haben ECMA und ISO/IEC die neue Ausgabe des CLI -Standards veröffentlicht,[1][2] das ist nicht durch das Gemeinschaftsversprechen abgedeckt.[6]

Implementierungen

  • .NET Framework Ist Microsoft die ursprüngliche kommerzielle Implementierung der CLI. Es unterstützt nur Windows. Es wurde im November 2020 von .NET ersetzt.
  • .NETZ ist der kostenlose und open-Source-Multi-Plattform-Nachfolger von .NET Framework, das unter dem veröffentlicht wurde MIT -Lizenz
  • .NET Compact Framework ist die kommerzielle Implementierung der CLI von Microsoft für tragbare Geräte und Xbox 360.
  • .NET Micro Framework ist eine Open-Source-Implementierung der CLI für ressourcenbezogene Geräte.
  • Mono ist eine alternative Open -Source -Implementierung von CLI und begleitenden Technologien, die hauptsächlich für die Entwicklung von Mobilgeräten und Spielen verwendet wird.

Siehe auch

Anmerkungen

  1. ^ a b "ISO/IEC 23271: 2012 - Informationstechnologie - Gemeinsame Sprachinfrastruktur (CLI)".
  2. ^ a b "Standard ECMA -335 - 6. Ausgabe (Juni 2012)".
  3. ^ "Einführung in die Entwicklung der erweiterten Windows -Store -App mit HTML5 und JavaScript | Microsoft Press Store".
  4. ^ "Winrt entmystifiziert - Miguel de Icaza".
  5. ^ "Die ECMA C #- und CLI -Standards - Port 25: Die Open -Source -Community bei Microsoft". 6. Juli 2009. archiviert von das Original am 9. Juli 2009. Abgerufen 26. September, 2009.
  6. ^ a b "Abgedeckte Spezifikationen | Microsoft Open Specialations". Microsoft.

Verweise

Externe Links