WikiDer > Gemeinsame Sprachinfrastruktur

Common Language Infrastructure

Das Gemeinsame Sprachinfrastruktur (CLI) ist eine offene Spezifikation, entwickelt von Microsoft, das den ausführbaren Code und die Laufzeitumgebung beschreibt, die das Herzstück der .GERADERahmen. Die Spezifikation definiert eine Umgebung, die verschiedene sogenannte High-Level Programmiersprachen wenn C# und VB.NET für verschiedene verwendet werden Plattformenohne sie umschreiben zu müssen.

Die CLI wird oft mit der verwechselt Common Language Runtime (CLR), denn das ist die Implementierung der CLI-Spezifikation.

CLI-Spezifikation

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

  • Es Gemeinsames Typensystem (CTS): Das CTS stellt Datentypen bereit, bietet ein zorgt objektorientierten basierend auf .NET.
  • Metadaten: Informationen über die Logik einer Anwendung. Diese Metadaten sind sprachunabhängig, daher sind Tools (wie Compiler und Debugger, aber auch Compiler und das VES) können problemlos Informationen austauschen. Diese Metadaten werden auch vom VES selbst verwendet. (siehe Punkt 4)
  • Gemeinsame Sprachspezifikation (CLS): Eine Reihe von Regeln, die jede CLI-kompatible Programmiersprache befolgen muss, damit sie gut mit anderen Sprachen funktioniert.
  • Virtuelles Ausführungssystem (VES): Das VES implementiert und verbessert das CTS, lädt die verschiedenen Teile des CLI-konformen Codes, kombiniert sie basierend auf den Metadaten des Codes und führt sie dann aus. Das VES heißt auch Ausführungs-Engine erwähnt.

Alle kompatiblen Sprachen kompilieren zur Common Intermediate Language (CIL). Dies ist eine hardwareunabhängige Sprache. Erst wenn die Anwendung tatsächlich ausgeführt wird, kompiliert das plattformspezifische VES die CIL in maschinenspezifischen (nativen) Code. Dies geschieht durch Just-in-Time-Zusammenstellung.

Standardisierung und Lizenzierung

August 2000 Microsoft, Hewlett Packard, Intel und andere zusammen, um CLI zu standardisieren. Dezember 2001 wurde dieser Standard ratifiziert von Ecma International. Im April 2003 folgte die ISO-Normung.

Ecma und ISO verlangen, dass alle Patente, die zur Implementierung eines Standards erforderlich sind, zu "angemessenen und nicht diskriminierenden" Bedingungen zur Verfügung gestellt werden, aber die Unternehmen, die die Patente auf CLI halten, haben zugestimmt, dass die Patente unter "gebührenfrei und ansonsten angemessen" verfügbar sind und nicht diskriminierende" Begriffe.

Implementierungen

  • Microsoft NET Framework enthält die kommerzielle Implementierung von CLI für Desktop-Systeme von Microsoft, aber auch eine breitere Sammlung von Ressourcen, Bibliotheken und Tools.
  • Shared Source Common Language Infrastructure ist eine referenzielle Implementierung von Microsofts CLI, veröffentlicht unter der Shared Source License.
  • .NET Compact-Framework ist Microsofts kommerzielle Implementierung von CLI für tragbare Geräte, wie z PDAs und zum Beispiel die Taschencomputer.
  • Mono ist eine beliebte Open-Source-Implementierung von CLI, gesponsert von Novelle.
  • portabel.NET Teil des dotGNU-Projekts ist auch eine Open-Source-CLI-Implementierung.

Verweise