Common Language Infrastructure
The Common Language Infrastructure , shortly CLI is an international standard specifies the systems that spoke - and platform-neutral enable application development and execution. The standard is managed by the International Organization for Standardization under the number ISO / IEC 23271 and by Ecma International under the name ECMA-335. The current version is 6 from June 2012.
The CLI is a specification , not an implementation . Her best-known implementation, the .NET Framework from Microsoft for Windows systems. However, there are also CLI implementations for Unix / Linux systems, Mac OS X and BSD variants.
The development is largely determined by Microsoft. The Mono project has already submitted an initial amendment proposal for standardization.
History of origin
- 2000, August - Microsoft , Hewlett-Packard and Intel submit the specification of the CLI to the ECMA for standardization.
- 2001, December - The standard is passed as ECMA-335. IBM , Fujitsu Software, Plum Hall, Monash University and ISE contributed to the development.
- 2001, December - The CLI specification is presented to ISO / IEC for standardization.
- 2002, December - First revision of the standard for ECMA-335 2nd edition is adopted. The changes resulted in part from the ongoing ISO standardization process.
- 2003, April - The content of ECMA-335 2nd edition is ratified by ISO / IEC as ISO / IEC 23271 (CLI) and ISO / IEC 23272 (CLI TR).
- 2005, June - ECMA-335 3rd edition is standardized by the ECMA. In addition to general improvements, this standard mainly provides support for generics and a standardized format for debug information .
- 2006, June - ECMA-335 4th edition is standardized by the ECMA.
- 2006, December - ECMA-335 5th edition is standardized by the ECMA.
- 2012, June - ECMA-335 6th edition is standardized by the ECMA.
The following companies and universities have contributed to the development of the standard: Borland , Fujitsu Software Corporation, Hewlett-Packard , Intel Corporation , IBM Corporation , ISE , IT University of Copenhagen , Jagger Software Ltd. , Microsoft Corporation , Monash University , Netscape Communications , Novell / Ximian (current name: Xamarin ), Phone.Com , Plum Hall , Sun Microsystems , University of Canterbury
construction
The standard contains the following essential parts:
- Common Type System (CTS)
- Virtual Execution System (VES)
- Common Language Specification (CLS)
- Common Intermediate Language (CIL)
- Metadata
structure
The CLI standard ECMA-335 3rd edition is divided into six parts, which are referred to as partitions. These are in detail:
- Partition I: Concepts and Architecture - Describes the overall architecture of the CLI.
- Partition II: Metadata Definition and Semantics - Contains information about metadata: the physical layout of the files, the logical contents and their structure.
- Partition III: CIL - Describes the instructions of the CIL
- Partition IV: Libraries - Contains a specification of classes and class libraries standardized as part of the CLI.
- Partition V: Describes the uniform debugging format .
- Partition VI: Appendices.
Implementations
The following implementations of the CLI are available:
- .NET Framework from Microsoft (implementation for Windows , which extends the standard with numerous other class libraries)
- SSCLI (also: Rotor) from Microsoft (implementation for BSD variants)
- Mono from Novell / Ximian (implementation for various Unix / Linux systems, Mac OS X and Windows; open source )
- .NET Compact Framework from Microsoft (implementation for Windows CE based on x86, MIPS, SH4 or ARM processors)
- .NET Micro Framework from Microsoft
- Silverlight from Microsoft
- DotGNU from the project of the same name
- .NET Core from Microsoft or the .NET Foundation
Each of these CLI implementations also has a VES implementation. The names for these VES implementations are known:
- the Common Language Runtime (CLR) is the VES of the .NET Framework
- TinyCLR is the name of the VES in the .NET Micro Framework
- Portable.NET is the name of the VES in the DotGNU
- CoreCLR is the name of the VES in the .NET Core
literature
- James S. Miller, Susan Ragsdale: The Common Language Infrastructure Annotated Standard , Addison-Wesley 2003, ISBN 0321154932
Web links
- Official site at Ecma International
- Official site at the ISO