- Common Language Infrastructure
-
Die Common Language Infrastructure (CLI) ist ein ISO/IEC/ECMA-Standard, der Systeme spezifiziert, die sprach- und plattformneutrale Anwendungsentwicklung und -ausführung ermöglichen. Momentan aktuell ist die Version 5 des Standards vom Dezember 2010.
Die CLI ist eine Spezifikation, keine Implementierung. Ihre bekannteste Implementierung ist .NET von Microsoft für Windows-Systeme. Es gibt jedoch auch CLI-Implementierungen für Unix/Linux-Systeme, Mac OS X und BSD-Varianten.
Die Entwicklung wird maßgeblich von Microsoft bestimmt. Das Mono-Projekt hat bereits einen ersten Änderungsvorschlag zur Standardisierung eingereicht. Ein Mono-Entwickler erklärte, dass er gespannt sei, ob Microsoft das neue Feature implementieren werde.
Inhaltsverzeichnis
Entstehungsgeschichte
- 2000, August – Microsoft, Hewlett-Packard und Intel reichen die Spezifikation der CLI bei der ECMA zur Standardisierung ein.
- 2001, Dezember – Der Standard wird als ECMA-335 verabschiedet. IBM, Fujitsu Software, Plum Hall, Monash University und ISE wirkten bei der Entwicklung mit.
- 2001, Dezember – Die CLI-Spezifikation wird der ISO/IEC zur Standardisierung vorgelegt.
- 2002, Dezember – Erste Revision des Standards zu ECMA-335 2nd edition wird verabschiedet. Die Änderungen ergaben sich teilweise aus dem laufenden ISO-Standardisierungsprozess.
- 2003, April – Der Inhalt von ECMA-335 2nd edition wird von der ISO/IEC als ISO/IEC 23271 (CLI) und ISO/IEC 23272 (CLI TR) ratifiziert.
- 2005, Juni – ECMA-335 3rd edition wird von der ECMA standardisiert. Dieser Standard bringt, neben allgemeinen Verbesserungen, vor allem Unterstützung für Generics und ein standardisiertes Format für Debuginformationen.
- 2006, Juni - ECMA-335 4th edition wird von der ECMA standardisiert.
- 2006, Dezember - ECMA-335 5th edition wird von der ECMA standardisiert.
Inhalt des Standards
Der CLI Standard ECMA-335 3rd edition gliedert sich in sechs Teile, die als Partitionen bezeichnet werden. Diese sind im einzelnen:
- Partition I: Konzepte und Architektur – Beschreibt die Gesamtarchitektur der CLI. Spezifiziert dazu das Common Type System (CTS), das Virtual Execution System (VES) und die Common Language Specification (CLS).
- Partition II: Metadatendefinition und Semantik – Enthält Informationen über Metadaten: Das physische Layout der Dateien, die logischen Inhalte und deren Struktur.
- Partition III: CIL – Beschreibt die Instruktionen der Common Intermediate Language (CIL).
- Partition IV: Bibliotheken – Enthält eine Spezifikation von Klassen und Klassenbibliotheken, die als Teil der CLI standardisiert sind.
- Partition V: Beschreibt das einheitliche Debuggingformat.
- Partition VI: Anhänge.
Die folgenden Firmen und Universitäten haben an der Entwicklung des Standards mitgewirkt: Borland, Fujitsu Software Corporation, Hewlett-Packard, Intel Corporation, IBM Corporation, ISE, IT University of Copenhagen, Jagger Software Ltd., Microsoft Corporation, Monash University, Netscape, Novell/Ximian, Phone.Com, Plum Hall, Sun Microsystems, University of Canterbury (NZ)
Bekannte Implementierungen
Momentan existieren 5 praktisch komplette Implementierungen des CLI-Standards (in Reihenfolge der geschätzten Verbreitung):
- .NET von Microsoft (Implementierung für Windows, die den Standard um zahlreiche weitere Klassenbibliotheken erweitert)
- .NET Compact Framework von Microsoft (Implementierung für Windows CE auf Basis von x86-, MIPS-, SH4- oder ARM-Prozessoren)
- Mono von Novell/Ximian (Implementierung für diverse Unix/Linux-Systeme, Mac OS X und Windows; Open Source)
- Portable.NET von Southern Storm Software (Implementierung für diverse Unix/Linux-Systeme, Mac OS X; Open Source)
- Rotor von Microsoft (Implementierung für BSD-Varianten)
Weblinks
- http://www.ecma-international.org/publications/standards/Ecma-335.htm – ECMA
- http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=36769&ICS1=35&ICS2=60&ICS3= – ISO
- http://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3F26-4555-AE17-3121B4F51D4D - Downloadmöglichkeit der Rotor-Quellen bei Microsoft
Wikimedia Foundation.