Skip to main content

ECMA C# and Common Language Infrastructure Standards

In June 2005, the General Assembly of the international standardization organization Ecma approved edition 3 of the C# Language and the Common Language Infrastructure (CLI) specifications, as updated Ecma-334 and Ecma-335, respectively (see press release). The updated technical report on the CLI, Ecma TR-84, and a new technical report on the CLI, Ecma TR-89, were also ratified.

In July 2005, Ecma submitted the Standards and TRs to ISO/IEC JTC 1 via the ISO Fast-Track process. The Standards were adopted in April 2006 as ISO/IEC 23270:2006 (C#), ISO/IEC 23270:2006 (CLI), ISO/IEC TR 23272:2006 (CLI, XML Libraries) and ISO ISO/IEC TR 25438:2006 (CLI, Common Generics).

In July 2006 the General Assembly of Ecma approved edition 4 of the Standards which correspond to the ISO 2006 versions.

Latest Standards

The following official Ecma documents are available for C# and the CLI ( TR-84, TR-89). These links are direct from Ecma:

 File name 
Size (Bytes)
 Content
  ECMA-334.pdf 2 614 003 C# Language Specification
  ECMA-335.pdf 3 219 107 Common Language Infrastructure
  ECMA-335.zip 754 982 XML-based Library Specification
  TR-084.pdf 187 450 Information Derived from Partition IV XML File
  TR-084.zip 19 329 610 XML Tool, Libraries in Microsoft© Word and PDF
  TR-089.pdf 589 400 Common Generics Library
  TR-089.zip 461 074 Common Generics Library Reference Implementation

Reference implementation for TR-89
Reference implementation for the Parallel API

The official ISO/IEC documents are available from the ISO/IEC Freely Available Standards page. These links are direct from that page:

 File name Content
  ISO/IEC 23270:2006 Information technology -- Programming languages -- C#
  ISO/IEC 23271:2006
- Software
 Information technology -- Common Language Infrastructure (CLI)
Partitions I to VI
  ISO/IEC TR 23272:2006
- Software
 Information technology -- Common Language Infrastructure (CLI)
-- Technical Report on Information Derived from Partition IV XML File
  ISO/IEC TR 25438:2006
- Software
 Information technology -- Common Language Infrastructure (CLI)
-- Technical Report: Common Generics

Current Working Draft

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.

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)

Annotated Standards

Members of the Standard committees and others have combined to produce annotated versions of the Standards. These are:

  • The Common Language Infrastructure Annotated Standard, James S. Miller & Susann Ragsdale, Addison-Wesley, 2004, ISBN 0-321-15493-2 (based on Edition 2 of Ecma-335)
  • C# Annotated Standard, Jon Jagger, Nigel Perry & Peter Sestoft, Morgan Kaufmann, 2007, ISBN 978-0-12-372511-0 (based on Edition 4 of Ecma-334)

Microsoft Implementation Specific Versions

The following documents are versions of the Standards with Microsoft implementation-specific notes added. These notes provide extra information about Microsoft's Common Language Runtime (CLR) implementation of the CLI.

 File name 
Size (Bytes)
 Content
  MS Partition I.pdf 815 983 Common Language Infrastructure, Partition I: Concepts and Architecture
  MS Partition II.pdf 1 758 195 Common Language Infrastructure, Partition II: Metadata Definition and Semantics
  MS Partition III.pdf 661 414 Common Language Infrastructure, Partition III: CIL Instruction Set
  MS Partition IV.pdf   Common Language Infrastructure, Partition IV: Profiles and Libraries
  MS Partition V.pdf   Common Language Infrastructure, Partition V: Binary Formats
  MS Partition VI.pdf   Common Language Infrastructure, Partition VI: Annexes

The Ecma 4th and ISO 2nd Editions

Aside from bug fixes, major enhancements from previous editions include:

CLI

  • First-class support for generics at the runtime and class library level
  • An API to help developers begin multithreaded and parallel programming
  • Enhancements to the Common Intermediate Language (CIL) and Common Language Specification (CLS)
  • An interchangeable debug format

C#

  • First-class language support for generics
  • Anonymous methods
  • Iterators
  • Nullable Types

Previous Editions Background

In August, 2000, Microsoft Corporation, Hewlett-Packard and Intel Corporation co-sponsored the submission of specifications for the Common Language Infrastructure (CLI) and C# programming language to the international standardization organization Ecma. As a result, Ecma formed two task groups (TG3 and TG2, respectively) within TC39, its technical committee responsible for programming languages and application development.

During the next year, the co-sponsor companies, in conjunction with other Ecma members and guests (including IBM, Fujitsu Software, Plum Hall, Monash University and ISE), refined these specifications into standards. In December, 2001, the Ecma General Assembly ratified the 1st edition of the C# and CLI standards as Ecma-334 and Ecma-335, respectively. A technical report on the CLI, Ecma TR-84, was also ratified.

In late December, 2001, Ecma submitted the standards and TR to ISO/IEC JTC 1 via the latter's Fast-Track process. The subsequent 6-month evaluation and comment period resulted in two NO votes (Japan and UK) on the draft standards, and one NO vote (Japan) on the draft TR. All comments resulting from this review were considered at a ballot resolution meeting held in October, 2002. The two NO votes on the standards were resolved, making acceptance unanimous. However, Japan did not change its NO vote on the draft TR (Japan would like to see a formatted/readable rendering of the CLI class library as part of the standard, not as a TR; this will be considered for a future edition).

The ISO/IEC standards and TR were published in April, 2003, and are known formally as ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR). Equivalent specifications were adopted as 2nd edition standards and TR by Ecma at its December, 2002, General Assembly.

Joining Ecma

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.

Acknowledgements

The following organizations have participated in the work of Ecma TC39/TG2 and TC39/TG3 and their contributions are gratefully acknowledged: Borland, Fujitsu, Hewlett-Packard, Intel Corporation, International Business Machines, ISE, IT University Copenhagen, JSL (UK), Kahu Research (New Zealand), Microsoft Corporation, Monash University, Netscape, Novell Corporation, OpenWave, Plum Hall, Sun Microsystems.

Many of the organizations that have participated in the TC39/TG2 and TC39/TG3 work have volunteered to mirror this site. The links for the mirror sites are: