Wprowadzenie
Ta specyfikacja jest oparta na przesłaniu przez Hewlett-Packard, Intel i Microsoft, który opisał język o nazwie C#, który został opracowany w firmie Microsoft. Głównymi wynalazcami tego języka byli Anders Hejlsberg, Scott Wiltamuth i Peter Golde. Pierwsza szeroko rozproszona implementacja języka C# została wydana przez firmę Microsoft w lipcu 2000 r. w ramach inicjatywy .NET Framework.
Ecma Technical Committee 39 (TC39) [później przemianowany na TC49] Task Group 2 (TG2) został utworzony we wrześniu 2000 r., aby utworzyć standard dla języka C#. W tym czasie utworzono również inną grupę zadań TG3 w celu utworzenia standardu dla środowiska biblioteki i wykonywania o nazwie Common Language Infrastructure (CLI). (Interfejs wiersza polecenia jest oparty na podzestawie programu .NET Framework). Chociaż implementacja języka C# firmy Microsoft opiera się na interfejsie wiersza polecenia na potrzeby obsługi biblioteki i czasu wykonywania, inne implementacje języka C# nie muszą, pod warunkiem, że obsługują one funkcje i interfejs API wymagany przez ten standard języka C# (patrz załącznik C).
Ponieważ definicja języka C# ewoluowała, cele używane w jego projekcie były następujące:
- Język C# ma być prostym, nowoczesnym, uniwersalnym językiem programowania zorientowanym na obiekty.
- Język i ich implementacje powinny zapewnić obsługę zasad inżynierii oprogramowania, takich jak silne sprawdzanie typów, sprawdzanie granic tablicy, wykrywanie prób użycia niezainicjowanych zmiennych i automatyczne odzyskiwanie pamięci. Niezawodność oprogramowania, trwałość i produktywność programistów są ważne.
- Język jest przeznaczony do użycia w tworzeniu składników oprogramowania odpowiednich do wdrożenia w środowiskach rozproszonych.
- Przenośność kodu źródłowego jest bardzo ważna, podobnie jak przenośność programistów, szczególnie w przypadku tych programistów, którzy znają już język C i C++.
- Obsługa międzynarodowych jest bardzo ważna.
- Język C# ma być odpowiedni do pisania aplikacji zarówno dla systemów hostowanych, jak i osadzonych, począwszy od bardzo dużych, które korzystają z zaawansowanych systemów operacyjnych, aż do bardzo małych z dedykowanymi funkcjami.
- Mimo że aplikacje języka C# mają być ekonomiczne w odniesieniu do wymagań dotyczących pamięci i mocy obliczeniowej, język nie był przeznaczony do konkurowania bezpośrednio na wydajności i rozmiarze w języku C lub języku zestawu.
Nazwa języka C# jest wymawiana jako "C Sharp".
Nazwa C# jest napisana jako WIELKA LITERA ŁACIŃSKA C (U+0043), a następnie ZNAK NUMERU #(U+0023).
ECMA C# draft specification