今天看老外写的文章提到了C#国际标准…
什么,C#还有国际标准?不会吧?谷歌一下,果然如此,06年就有了ISO标准…居然还能从ISO官网下载到电子版。
看来金钱就是好东西啊,有钱能使鬼推磨道理在地球上哪里都好用…
继续谷歌,在MSDN上发现了下面的文字。
连接:http://msdn.microsoft.com/en-us/netframework/aa569283
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: