All Topics  
Common Language Infrastructure

 

   Email Print
   Bookmark   Link






 

Common Language Infrastructure



 
 
The Common Language Infrastructure (CLI) is an open specification (published under ECMA-335 and ISO/IEC 23271) developed by Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 that describes the executable code and runtime environment that form the core of a number of runtimes including the Microsoft .NET Framework
.NET Framework

The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
, Mono
Mono (software)

Mono is a project led by Novell to create an Ecma International standard compliant, .NET Framework-compatible set of tools, including among others a C Sharp compiler and a Common Language Runtime....
, and Portable.NET
Portable.NET

Part of the DotGNU project, Portable.NET is a free software and open source software initiative aiming to build a portability toolchain and runtime for Common Language Infrastructure applications....
. The specification defines an environment that allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures.

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

The Common Type System
Common Type System

The Common Type System is a standard that specifies how Type definitions and specific values of Types are represented in computer memory. It is intended to allow programs written in different programming languages to easily share information....
 (CTS) : A set of types and operations that are shared by all CTS-compliant programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
s. 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
Common Language Specification

The Common Language Specification is a set of base rules to which any language targeting the Common Language Infrastructure should conform in order to interoperate with other CLS-compliant languages....
 (CLS) : A set of base rules to which any language targeting the CLI should conform in order to interoperate with other CLS-compliant languages.






Discussion
Ask a question about 'Common Language Infrastructure'
Start a new discussion about 'Common Language Infrastructure'
Answer questions from other users
Full Discussion Forum



Encyclopedia


The Common Language Infrastructure (CLI) is an open specification (published under ECMA-335 and ISO/IEC 23271) developed by Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 that describes the executable code and runtime environment that form the core of a number of runtimes including the Microsoft .NET Framework
.NET Framework

The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
, Mono
Mono (software)

Mono is a project led by Novell to create an Ecma International standard compliant, .NET Framework-compatible set of tools, including among others a C Sharp compiler and a Common Language Runtime....
, and Portable.NET
Portable.NET

Part of the DotGNU project, Portable.NET is a free software and open source software initiative aiming to build a portability toolchain and runtime for Common Language Infrastructure applications....
. The specification defines an environment that allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures.

Overview

Overview of the Common Language Infrastructure
Among other things, the CLI specification describes the following four aspects:-

The Common Type System
Common Type System

The Common Type System is a standard that specifies how Type definitions and specific values of Types are represented in computer memory. It is intended to allow programs written in different programming languages to easily share information....
 (CTS) : A set of types and operations that are shared by all CTS-compliant programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
s. 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
Common Language Specification

The Common Language Specification is a set of base rules to which any language targeting the Common Language Infrastructure should conform in order to interoperate with other CLS-compliant languages....
 (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
Virtual Execution System

The Virtual Execution System provides an environment for executing managed code. It provides direct support for a set of built-in data types, defines a hypothetical machine with an associated machine model and state, a set of control flow constructs, and an exception handling model....
 (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
Common Intermediate Language

Common Intermediate Language is the lowest-level human-readable programming language in the Common Language Infrastructure and in the .NET Framework....
 (CIL), which is an intermediate language
Intermediate language

In computer science, an intermediate language is the language of an abstract machine designed to aid in the analysis of computer programs. The term comes from their use in compilers, where a compiler first translates the source code of a program into a form more suitable for code-improving transformations, as an intermediate step before gener...
 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.

Standardization and licensing

In August 2000, Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
, Hewlett-Packard
Hewlett-Packard

The Hewlett-Packard Company , commonly referred to as HP, is a technology corporation headquartered in Palo Alto, California, United States....
, Intel, and others worked to standardize CLI. By December 2001, it was ratified by the ECMA
Ecma International

'Ecma International' is an international, private non-profit standards organization for information and communication systems. It acquired its name in 1994, when the European Computer Manufacturers Association changed its name to reflect the organization's international reach....
, with ISO
International Organization for Standardization

The International Organization for Standardization , widely known as ISO , is an international standard-setting body composed of representatives from various national standards organizations....
 standardization following in April 2003.

While Microsoft and their 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
Reasonable and Non Discriminatory Licensing

Reasonable and Non Discriminatory Licensing is a term for a type of licensing typically used during standardization processes. The normal case is that when joining the standardization body, companies agree that if they receive any patents on technologies which become essential patent to the standard then they agree to allow other groups att...
."

Support for dynamic languages

The Common Language Infrastructure has currently no built-in support for Dynamically typed languages
Type system

In computer science, a type system may be defined as "a tractable syntactic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute."....
, because the existing Common Intermediate Language
Common Intermediate Language

Common Intermediate Language is the lowest-level human-readable programming language in the Common Language Infrastructure and in the .NET Framework....
 is statically typed
Type system

In computer science, a type system may be defined as "a tractable syntactic method for proving the absence of certain program behaviors by classifying phrases according to the kinds of values they compute."....
.

The Dynamic Language Runtime
Dynamic Language Runtime

The Dynamic Language Runtime from Microsoft is an ongoing effort to bring a set of services that run on top of the Common Language Runtime and provides language services for several different dynamic languages....
 is an ongoing effort to bring this support to the CLR
Common Language Runtime

The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code....
.

Implementations

  • The .NET Framework
    .NET Framework

    The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
     is built on the Common Language Runtime
    Common Language Runtime

    The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code....
    , Microsoft's commercial implementation of the CLI for desktop and server systems, and also encompasses a large collection of programming frameworks and libraries.
  • Shared Source Common Language Infrastructure
    Shared Source Common Language Infrastructure

    The Shared Source Common Language Infrastructure , previously codenamed Rotor, is Microsoft's shared source implementation of the Common Language Infrastructure, the core of Microsoft .NET....
     is a reference implementation of the CLI available from Microsoft, under the Shared source
    Shared source

    Shared Source is Microsoft's framework for sharing computer program source code with third parties. Microsoft's Shared Source Initiative, launched in May 2007, includes a spectrum of technologies and licenses....
     licensing program.
  • .NET Compact Framework
    .NET Compact Framework

    The Microsoft .NET Compact Framework is a version of the .NET Framework that is designed to run on Windows CE based mobile/embedded devices such as Personal digital assistant, mobile phones, factory controllers, set-top boxes, etc....
     is Microsoft's commercial implementation of the CLI for portable devices and Xbox 360
    Xbox 360

    The Xbox 360 is the second video game console produced by Microsoft, and the successor to the Xbox. The Xbox 360 competes with Sony's PlayStation 3 and Nintendo's Wii as part of the History of video game consoles of video game consoles....
    .
  • Net60 is commercial implementation of .NET Compact Network on Symbian-based devices.
  • Microsoft Silverlight
    Microsoft Silverlight

    Microsoft Silverlight is a programmable web browser plugin that enables features such as animation, vector graphics and multimedia that characterizes rich Internet applications....
    , an implementation for use in web browsers - for Microsoft Windows
    Microsoft Windows

    Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
     and Mac OS X
    Mac OS X

    Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
    .
  • Mono development platform
    Mono (software)

    Mono is a project led by Novell to create an Ecma International standard compliant, .NET Framework-compatible set of tools, including among others a C Sharp compiler and a Common Language Runtime....
     is an open source
    Open source

    Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
     implementation of CLI and accompanying technologies, sponsored by Novell
    Novell

    Novell Inc. is a global software corporation based in the United States specializing in enterprise operating systems such as SUSE Linux distributions and Novell NetWare; identity, security and systems management solutions; and collaboration solutions....
    .
  • Portable.NET
    Portable.NET

    Part of the DotGNU project, Portable.NET is a free software and open source software initiative aiming to build a portability toolchain and runtime for Common Language Infrastructure applications....
    , part of the dotGNU
    DotGNU

    DotGNU is a part of the GNU Project that aims to provide a free software replacement for Microsoft's .NET Framework. Other goals of the project are better support for non-Microsoft Windows platforms and support for more processors....
     project, is another open-source implementation.
  • part of Low Level Virtual Machine
    Low Level Virtual Machine

    The Low Level Virtual Machine, generally known as LLVM, is a compiler infrastructure, written in C++, which is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs written in arbitrary programming languages....
     toolkit as of version 2.3.