Introducción
Esta especificación se basa en un envío de Hewlett-Packard, Intel y Microsoft, que describió un lenguaje llamado C#, que se desarrolló en Microsoft. Los principales inventores de este idioma eran Anders Hejlsberg, Scott Wiltamuth y Peter Golde. Microsoft publicó la primera implementación ampliamente distribuida de C# en julio de 2000, como parte de su iniciativa de .NET Framework.
El Comité Técnico de Ecma 39 (TC39) [más tarde cambiado a TC49] Grupo de Tareas 2 (TG2) se formó en septiembre de 2000, para producir un estándar para C#. Otro grupo de tareas, TG3, también se formó en ese momento para generar un estándar para una biblioteca y un entorno de ejecución denominado Common Language Infrastructure (CLI). (La CLI se basa en un subconjunto de .NET Framework). Aunque la implementación de C# de Microsoft se basa en la CLI para la compatibilidad en tiempo de ejecución y biblioteca, no es necesario usar otras implementaciones de C#, siempre que admitan las características y la API requeridas por este estándar de C# (consulte el anexo C).
A medida que evolucionó la definición de C#, los objetivos utilizados en su diseño eran los siguientes:
- C# está diseñado para ser un lenguaje de programación simple, moderno, de uso general y orientado a objetos.
- El lenguaje y las implementaciones del mismo deben proporcionar compatibilidad con principios de ingeniería de software, como la comprobación de tipos seguros, la comprobación de límites de matriz, la detección de intentos de usar variables no inicializadas y la recolección automática de elementos no utilizados. La solidez del software, la durabilidad y la productividad del programador son importantes.
- El lenguaje está diseñado para su uso en el desarrollo de componentes de software adecuados para la implementación en entornos distribuidos.
- La portabilidad del código fuente es muy importante, ya que es la portabilidad del programador, especialmente para aquellos programadores que ya están familiarizados con C y C++.
- La compatibilidad con la internacionalización es muy importante.
- C# está diseñado para ser adecuado para escribir aplicaciones para sistemas hospedados e incrustados, que van desde el muy grande que usa sistemas operativos sofisticados, hasta las funciones muy pequeñas que tienen funciones dedicadas.
- Aunque las aplicaciones de C# están pensadas para ser económicas con respecto a los requisitos de potencia de memoria y procesamiento, el lenguaje no estaba pensado para competir directamente en el rendimiento y el tamaño con C o lenguaje de ensamblado.
El nombre C# se pronuncia "C Sharp".
El nombre C# se escribe como LATIN CAPITAL LETTER C (U+0043) seguido de NUMBER SIGN # (U+0023).
ECMA C# draft specification