Standard+ECMA-335

= Standard ECMA-335 : Common Language Infrastructure (CLI) =

5th edition (December 2010) [|Standard ECMA-335] This International Standard defines the Common Language Infrastructure (CLI) in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite those applications to take into consideration the unique characteristics of those environments. This International Standard consists of the following parts:
 * Partition I: Concepts and Architecture – Describes the overall architecture of the CLI, and provides the normative description of the Common Type System (CTS), the Virtual Execution System (VES), and the Common Language Specification (CLS). It also provides an informative description of the metadata.
 * Partition II: Metadata Definition and Semantics – Provides the normative description of the metadata: its physical layout (as a file format), its logical contents (as a set of tables and their relationships), and its semantics (as seen from a hypothetical assembler, //ilasm//).
 * Partition III: CIL Instruction Set – Describes the Common Intermediate Language (CIL) instruction set.
 * Partition IV: Profiles and Libraries – Provides an overview of the CLI Libraries, and a specification of their factoring into Profiles and Libraries. A companion file, CLILibrary.xml, considered to be part of this Partition, but distributed in XML format, provides details of each class, value type, and interface in the CLI Libraries.
 * Partition V: Debug Interchange Format– Describes a standard way to interchange debugging information between CLI producers and consumers.
 * Partition VI: Annexes – Contains some sample programs written in CIL Assembly Language (ILAsm), information about a particular implementation of an assembler, a machine-readable description of the CIL instruction set which can be used to derive parts of the grammar used by this assembler as well as other tools that manipulate CIL, a set of guidelines used in the design of the libraries of Partition IV, and portability considerations.

The following files can be freely downloaded: Common Generics || This Ecma publication is also be approved as ISO/IEC 23271, which is freely available [|here]. The previous replaced "historical" editions of this Ecma Standard are available [|here].
 * File name || Size (Bytes) || Content ||
 * [|ECMA-335.pdf] || 7 237 127 || Acrobat (r) PDF file ||
 * [|ECMA-335.zip] || 790 191 || Consisting of XML specification, see also [|ECMA TR/84] ||
 * ||  || see also [|ECMA TR/89] ,
 * [|Microsoft patent statement] || 25 189 || Acrobat (r) PDF file ||

[|Ecma Common Language Infrastructure (CLI) Standard - Working Draft]

In August, 2000, the specification for the Common Language Infrastructure (CLI) was submitted to the international standardization organization Ecma. As a result, Ecma formed a task group (TG3) within TC39 (now moved to TC49), its technical committee responsible for programming languages and application development. This specification became known as Ecma-335.

Since the initial submission, various Ecma member companies and individual contributors have produced two editions of the CLI standard, one in 2002 and one in 2006. Each Ecma edition was also submitted and approved by the International Standards Organization (ISO), specifically ISO/IEC JTC 1. The Ecma CLI specification went through the ISO/IEC JTC 1 Fast-Track process and the resulting document is referred to as ISO/IEC 23271.

Because Ecma adopts the equivalent ISO document as another edition, the Ecma-335 CLI standard is officially at its 4th edition as of June 2006.

A differently formatted version of each of these documents is being produced for final publication as
 * 1) ISO/IEC standards and TR (1st edition). To monitor the progress of the publications, please visit []
 * 2) ECMA standards and TR (2nd edition). To monitor the progress of the publications, please visit []

Work on the 5th edition of Ecma-335 CLI standard began in mid-2009. The TC49-TG3 task group is working on extending both the virtual machine and class libraries of the CLI specification. In addition, improvements are being made to clarify existing elements of the specification. Many of these improvements are the result of feedback received from outside the task group, for which the task group is grateful.

Posted below is a snapshot of the committee’s work as of 27 March 2010. The participants in TC49/TG3 are providing these working documents to the public for informational purposes only. The contents are subject to change as often as once a month. To participate in the standardization process, contact your organization's Ecma representative. If your company does not currently participate in Ecma and wishes to do so, please contact ECMA ([]) directly.

The following organizations and contributors are actively participating in the work of TC49/TG3: Eiffel Software, Microsoft Corporation, Novell Corporation, Kahu Research, and Twin Roots.

The following organizations have previously participated in the work of TC49/TG3 and their contributions are gratefully acknowledged: Fujitsu Software, Hewlett-Packard, Intel Corporation, International Business Machines, ISE, Monash University, Netscape, OpenWave, Plum Hall, Sun Microsystems.

Many of the organizations that are currently participating in the TC49/TG3 work have volunteered to mirror this site. The URLs for the mirror sites are:
 * [|Eiffel Software]
 * [|Microsoft Corporation]
 * [|Novell Corporation]
 * [|Kahu Research]
 * [|Twin Roots].

Available Documents (Documents current as of 27 March 2010) The following working draft documents are available:
 * CLI Partition I - Architecture ([|word/pdf zip])
 * CLI Partition II - Metadata and File Format ([|word/pdf zip])
 * CLI Partition III - CIL ([|word/pdf zip])
 * CLI Partition IV - Library ([|word/pdf zip])
 * CLI Partition V – Binary Formats ([|word/pdf zip])
 * CLI Partition VI – Annexes ([|word/pdf zip])
 * Class Library XML ([|xml zip])
 * Class Library Detailed Specifications ([|word/pdf zip])