March 2001
Internal Working Document Released for informational purposes only
ECMA TC39/TG2
Microsoft
This ECMA Standard is based on a submission from Hewlett-Packard, Intel, and Microsoft, that described a language called C#, which was developed within Microsoft. The principal inventors of this language were Anders Hejlsberg, Scott Wiltamuth, and Peter Golde. The first widely distributed implementation of C# was released by Microsoft in July, 2000, as part of its .NET Framework initiative.
ECMA committee TC39 Task Group 2 (TG2) was formed in September, 2000, to produce a standard for C#. Another committee, TG3, was also formed at that time to produce a standard for a library and execution environment called Common Language Infrastructure (CLI). (CLI is based on a subset of the .NET Framework.) Although Microsoft.s implementation of C# relies on CLI for library and runtime support, other implementations of C# need not, provided they support an alternate way of getting at the minimum CLI features required by this C# standard.
As the definition of C# evolved, the goals used in its design were as follows:
- C# is intended to be a simple, modern, general-purpose, object-oriented programming language.
- The language, and implementations thereof, should provide support for software engineering principles such as strong type checking, array bounds checking, attempts to use uninitialized variables, automatic garbage collection, and so on. Program robustness, durability, and programmer productivity are important.
- The language is intended for use in developing software components suitable for deployment in distributed environments.
- Source code portability is very important, as is programmer portability, especially for those programmers already familiar with C and C++.
- Support for internationalization is very important.
- C# is intended to be suitable for writing programs for both hosted and embedded systems, ranging from the very large that use sophisticated operating systems, down to the very small having dedicated functions.
- Although C# programs are intended to be economical with regards to memory and processing power requirements, the language was not intended to compete directly on performance and size with C or assembly language.
The development of this standard started in November, 2000. It is intended that the final version of this draft ECMA Standard will be submitted to ISO/IEC JTC 1 for adoption under its fast-track procedure. It is expected there will be future revisions to this standard, primarily to add new functionality.