Common Language Infrastructure
The Common Language Infrastructure (CLI) is an open specification developed by Microsoft that describes the executable code and runtime environment that form the core of the Microsoft .NET Framework. The specification defines an environment that allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures.
To clarify, the CLI is a specification, not an implementation, and is often confused with the Common Language Runtime (CLR), which contains aspects outside the scope of the specification.
The CLI specification is divided into four aspects:
- The Common Type System (CTS) — A set of types and operations that are shared by many 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 writen in a language you are not using.
- Common Language Specification (CLS)
- 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.
Contents |
Standardization and Licensing
In August, 2000, Microsoft, Hewlett-Packard, Intel and others worked to standardize CLI. In December, 2001, it was ratified by the ECMA, with ISO standardization following in April, 2003.
While Microsoft and their partners hold patents for CLI, ECMA and ISO requires that all patents essential to implementation be made available under "reasonable and non-discriminatory (RAND) terms." The companies have agreed, instead, to make the patents available under "royalty-free and otherwise RAND" terms.
Implementations
- Microsoft .NET Framework contains Microsoft's commercial implementation of the CLI, but also encompassing a larger collection of resources, libraries, and tools.
- Shared Source Common Language Infrastructure is a reference implimentation of the CLI available from Microsoft, under the Shared source licensing program.
- Mono development platform is a popular open source implementation of CLI and accompanying technologies, sponsored by Novell.
- Portable.NET, part of the dotGNU project, is another open-source implementation.
External links and references
External links
References
- "Standard ECMA-335, Common Language Infrastructure (CLI)". ECMA International. URL accessed on Aug. 31, 2005.
- "ISO/IEC 23271, Common Language Infrastructure)". ISO. URL accessed on Aug. 31, 2005.hu:Common Language Infrastructure
it:Common Language Infrastructure pl:Common Language Infrastructure