hidden pixel

Common Language Infrastructure Information

The Common Language Infrastructure (CLI) is an open specification developed by Microsoft and standardized by ISO[1] and ECMA[2] that describes the executable code and runtime environment that form the core of the Microsoft .NET Framework and the free and open source implementations Mono and Portable.NET. The specification defines an environment that allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures.

Contents

Overview

Visual overview of the Common Language Infrastructure (CLI)

Among other things, the CLI specification describes the following four aspects:-

The Common Type System (CTS)
A set of data types and operations that are shared by all CTS-compliant programming languages.
Metadata
Information about program structure is language-agnostic, so that it can be referenced between languages and tools, making it easy to work with code written in a language you are not using.
Common Language Specification (CLS)
A set of base rules to which any language targeting the CLI should conform in order to interoperate with other CLS-compliant languages. The CLS rules define a subset of the Common Type System.
Virtual Execution System (VES)
The VES loads and executes CLI-compatible programs, using the metadata to combine separately generated pieces of code at runtime.

All compatible languages compile to Common Intermediate Language (CIL), which is an intermediate language that is abstracted from the platform hardware. When the code is executed, the platform-specific VES will compile the CIL to the machine language according to the specific hardware and operating system.

Standardization and licensing

In August 2000, Microsoft, Hewlett-Packard, Intel, and others worked to standardize CLI. By December 2001, it was ratified by the ECMA, with ISO standardization following in April 2003.

Microsoft and its partners hold patents for CLI. ECMA and ISO require that all patents essential to implementation be made available under "reasonable and non-discriminatory (RAND) terms", but interpretation[who?] of this has led to much controversy, particularly in the case of Mono[citation needed].

As of July 2009.[3] Microsoft applied C# and CLI under the Community Promise, so anyone can safely implement those standards without fearing a patent lawsuit.

Support for dynamic languages

Main article: List of CLI languages Further information: .NET Framework#.NET Framework 4

The Common Language Infrastructure currently has no built-in support for Dynamically typed languages because the existing Common Intermediate Language is statically typed.[4]

The Dynamic Language Runtime is an ongoing effort to bring this support to the CLR.

Implementations

Notes

  1. ^ http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=42927
  2. ^ http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf
  3. ^ "The ECMA C# and CLI Standards - Port 25: The Open Source Community at Microsoft". 2009-07-06. http://port25.technet.com/archive/2009/07/06/the-ecma-c-and-cli-standards.aspx.
  4. ^ Pobar, Joel (2007-01-03). "CLR Dynamic languages under the hood". http://blogs.msdn.com/joelpob/archive/2005/07/01/434728.aspx. Retrieved 2008-01-26.

References

· · .NET Framework
Architecture Base Class Library · Common Language Runtime · Code Access Security · Assembly · Metadata · COM Interop
Common Language Infrastructure (CLI) Common Language Infrastructure · Common Type System · Common Intermediate Language · Virtual Execution System
CLI Languages
Common1 C# · Visual Basic .NET · C++/CLI (Managed) · F# · J# · JScript .NET · Windows PowerShell
Other2 Axum · A# · Boo · Cobra · M · Oxygene · IronScheme (IronLisp) · IronPython · IronRuby · Nemerle · Phalanger · P#
Components ADO.NET (Entity Framework · Data Services) · ASP.NET (AJAX · MVC · Dynamic Data) · Language Integrated Query · CardSpace · ClickOnce · Communication Foundation · Dynamic Language Runtime · Forms · Presentation Foundation · Remoting · Workflow Foundation · XAML
Other implementations Mono · Compact Framework · XNA Framework · Micro Framework · Portable.NET · Silverlight · SSCLI · DotGNU
Comparisons Java and C# · C# and Visual Basic .NET · Java and .NET platforms
Upcoming "Acropolis" · "Jasper" · Parallel Extensions · Managed Extensibility Framework
1 Languages that are, will be, or have been included with Visual Studio or Microsoft Windows. 2 Non-academic or research languages with relatively large user-bases.
· · Standards of Ecma International
AIT · ANSI escape code · C++/CLI · C# · CD-ROM · CDFS · CLI · DDS · DLT · E4X · ECMAScript · Eiffel · FAT · FD · HVD · NFC · Office Open XML · OpenXPS · Super DLT · U3D · UDF · UDO · Ultrium-1 · UMD · UWB · VXA
List of Ecma standards

Categories: .NET framework

 

The above information uses material from Wikipedia and is licensed under the GNU Free Documentation License.
Some facts may not have been fully verified for accuracy. [Disclaimers]
This page was last archived by our server on Sat Jul 23 19:25:46 2011.
Displaying this page or its contents does not use any Wikimedia Foundation's resources.
The owners of this site proudly support the Wikimedia Foundation.