ECMA C# and Common Language Infrastructure StandardsIn 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 StandardsThe 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: Annotated StandardsMembers 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 VersionsThe 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 |
The Ecma 4th and ISO 2nd EditionsAside 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 BackgroundIn 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 EcmaTo 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.
AcknowledgementsThe 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:
| |