„Common Language Infrastructure“ – Versionsunterschied
[gesichtete Version] | [gesichtete Version] |
K Link zu gelöschtem Artikel "Ximian" entfernt (dieser Artikel wurde wegen fehlender Relevanz gelöscht, somit wird der Link nicht mehr benötigt), dafür Hinweis mit Link zu Xamarin eingefügt |
K Wikilinks mit AWB |
||
Zeile 7: | Zeile 7: | ||
== Entstehungsgeschichte == |
== Entstehungsgeschichte == |
||
* 2000, August – [[Microsoft]], [[Hewlett-Packard]] und [[Intel]] reichen die |
* 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, |
* 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. |
* 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. |
* 2002, Dezember – Erste Revision des Standards zu ECMA-335 2nd edition wird verabschiedet. Die Änderungen ergaben sich teilweise aus dem laufenden ISO-Standardisierungsprozess. |
||
Zeile 31: | Zeile 31: | ||
Der CLI Standard ECMA-335 3rd edition gliedert sich in sechs Teile, die als Partitionen bezeichnet werden. Diese sind im Einzelnen: |
Der CLI Standard ECMA-335 3rd edition gliedert sich in sechs Teile, die als Partitionen bezeichnet werden. Diese sind im Einzelnen: |
||
* Partition I: [[ |
* Partition I: [[Entwurf|Konzepte]] und [[Architektur (Informatik)|Architektur]] – Beschreibt die Gesamtarchitektur der CLI. |
||
* Partition II: |
* 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 CIL |
* Partition III: CIL – Beschreibt die Instruktionen der CIL |
||
* Partition IV: Bibliotheken – Enthält eine Spezifikation von Klassen und [[Klassenbibliothek]]en, die als Teil der CLI standardisiert sind. |
* Partition IV: Bibliotheken – Enthält eine Spezifikation von Klassen und [[Klassenbibliothek]]en, die als Teil der CLI standardisiert sind. |
||
Zeile 42: | Zeile 42: | ||
Es gibt folgende [[Implementierung]]en der CLI: |
Es gibt folgende [[Implementierung]]en der CLI: |
||
* [[.NET Framework]] von [[Microsoft]] (Implementierung für [[Microsoft Windows|Windows]], die den Standard um zahlreiche weitere |
* [[.NET Framework]] von [[Microsoft]] (Implementierung für [[Microsoft Windows|Windows]], die den Standard um zahlreiche weitere Klassenbibliotheken erweitert) |
||
* [[SSCLI]] (auch: Rotor) von Microsoft (Implementierung für [[Berkeley Software Distribution|BSD]]-Varianten) |
* [[SSCLI]] (auch: Rotor) von Microsoft (Implementierung für [[Berkeley Software Distribution|BSD]]-Varianten) |
||
* [[Mono-Projekt|Mono]] von Novell/Ximian (Implementierung für diverse [[Unix]]/[[Linux]]-Systeme, [[Mac OS X]] und |
* [[Mono-Projekt|Mono]] von Novell/Ximian (Implementierung für diverse [[Unix]]/[[Linux]]-Systeme, [[Mac OS X]] und Windows; [[Open Source]]) |
||
* [[.NET Compact Framework]] von Microsoft (Implementierung für [[Windows CE]] auf Basis von x86-, MIPS-, SH4- oder ARM-Prozessoren) |
* [[.NET Compact Framework]] von Microsoft (Implementierung für [[Windows CE]] auf Basis von x86-, MIPS-, SH4- oder ARM-Prozessoren) |
||
* [[.NET Micro Framework]] von Microsoft |
* [[.NET Micro Framework]] von Microsoft |
Version vom 21. Oktober 2019, 20:06 Uhr
Die Common Language Infrastructure, kurz CLI, ist ein internationaler Standard, der Systeme spezifiziert, die sprach- und plattformneutrale Anwendungsentwicklung und -ausführung ermöglichen. Der Standard wird durch die Internationale Organisation für Normung unter der Nummer ISO/IEC 23271 geführt und durch die Ecma International unter dem Namen ECMA-335. Aktuell ist die Version 6 vom Juni 2012.
Die CLI ist eine Spezifikation, keine Implementierung. Ihre bekannteste Implementierung ist das .NET Framework 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.
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.
- 2012, Juni - ECMA-335 6th edition wird von der ECMA standardisiert.
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-Universität Kopenhagen, Jagger Software Ltd., Microsoft Corporation, Monash University, Netscape Communications, Novell/Ximian (heutiger Name: Xamarin), Phone.Com, Plum Hall, Sun Microsystems, University of Canterbury
Aufbau
Der Standard enthält die folgenden, wesentlichen Teile:
- Common Type System (CTS)
- Virtual Execution System (VES)
- Common Language Specification (CLS)
- Common Intermediate Language (CIL)
- Metadaten
Gliederung
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.
- 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 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.
Implementierungen
Es gibt folgende Implementierungen der CLI:
- .NET Framework von Microsoft (Implementierung für Windows, die den Standard um zahlreiche weitere Klassenbibliotheken erweitert)
- SSCLI (auch: Rotor) von Microsoft (Implementierung für BSD-Varianten)
- Mono von Novell/Ximian (Implementierung für diverse Unix/Linux-Systeme, Mac OS X und Windows; Open Source)
- .NET Compact Framework von Microsoft (Implementierung für Windows CE auf Basis von x86-, MIPS-, SH4- oder ARM-Prozessoren)
- .NET Micro Framework von Microsoft
- Silverlight von Microsoft
- DotGNU vom gleichnamigen Projekt
- .NET Core von Microsoft bzw. der .NET Foundation
Jede dieser CLI-Implementierungen hat auch eine VES-Implementierung. Als Namen für diese VES-Implementierungen sind bekannt:
- die Common Language Runtime (CLR) ist das VES des .NET Frameworks
- TinyCLR ist der Name der VES im .NET Micro Framework
- Portable.NET ist der Name der VES im DotGNU
- CoreCLR ist der Name der VES im .NET Core
Literatur
- James S. Miller, Susan Ragsdale: The Common Language Infrastructure Annotated Standard, Addison-Wesley 2003, ISBN 0321154932
Weblinks
- Offizielle Seite bei der Ecma International
- Offizielle Seite bei der ISO