Лекция № 1

Тема: "Язык программирования C#: краткий обзор"

 

План

1. История создания языка

2. Версии языка

3. Чем интересен C#?

4. Архитектура платформы (как все это работает)

5. Элементы синтаксиса

1. История создания языка

Язык C#, разработанный компанией Майкрософт, один из самых популярных современных языков программирования. Он востребован на рынке разработки в различных странах. C# применяют при работе с программами для ПК, создании сложных веб-сервисов или мобильных приложений. Появившийся как язык для собственных нужд платформы Microsoft .NET, постепенно этот язык стал очень популярным.

Разработка языка началась в 1998 году, а первая версия увидела свет в 2001. Группой разработчиков руководил известный в профессиональных кругах специалист Андерс Хейлсберг.

Историческая справка. Андерс Хейлсберг  — датский инженер-программист, создатель Turbo Pascal, Delphi, C# и TypeScript. В 1981 году написал свой первый компилятор языка Паскаль, который после портирования под операционную систему MS-DOS продал фирме Borland. Эта версия легла в основу Turbo/Borland Pascal, который развивался до 1995 года. До 1996 года был главным инженером фирмы Borland, где создал новое поколение компиляторов Паскаля — язык Delphi, компилятор которого работал уже под операционной системой Windows. В 1996 году перешёл в Microsoft, где работал над такими проектами, как J++ и Microsoft Foundation Classes. С 2000 года возглавлял группу по созданию и проектированию языка программирования C#.

Название «Си шарп» (от англ. sharp — диез) происходит от буквенной музыкальной нотации, где латинской букве C соответствует нота До, а знак диез (англ. sharp) означает повышение соответствующего ноте звука на полутон, что аналогично названию языка C++, где «++» обозначает инкремент переменной. Название также является игрой с цепочкой C → C++ → C++++(C#), так как символ «#» можно представить состоящим из 4 знаков «+».
Из-за технических ограничений на отображение (стандартные шрифты, браузеры и т. д.), а также из-за того, что знак диеза ♯ не представлен на стандартной клавиатуре компьютера, при записи имени языка программирования используют знак решётки (#). Это соглашение отражено в Спецификации языка C# ECMA-334. Тем не менее, на практике (например, при размещении рекламы и коробочном дизайне), «Майкрософт» использует знак диеза. Названия языков программирования не принято переводить, поэтому язык называют, используя транскрипцию, — «Си шарп».

Новые версии C# выходят сравнительно часто, а текущие доработки, исправление багов и расширение библиотек ведется практически на постоянной основе.

В результате язык получился крайне гибкий, мощный и универсальный. На нем пишут практически все, что угодно, от небольших веб-приложений до мощных программных систем, объединяющих в себе веб-структуры, приложения для десктопов и мобильных устройств. Все это стало возможным благодаря удобному Си-подобному синтаксису, строгому структурированию, огромному количеству фреймворков и библиотек (их число достигает нескольких сотен).  

Долгое время платформа .NET поставлялась с закрытым ядром, что создавало определенные сложности в разработке и снижало популярность C# в профессиональной среде. Но в ноябре 2014 Майкрософт радикально изменила подход и стала выдавать бесплатные лицензии для Visual Studio уже с открытым исходным кодом для всех наборов инструментов.

 

2. Версии языка

На протяжении разработки языка C# было выпущено несколько его версий:

Версия

Спецификация языка

Дата

.NET Framework

Visual Studio

ECMA

ISO/IEC

Microsoft

C# 1.0

Декабрь 2002

Апрель 2003

Январь 2002

Январь 2002

.NET Framework 1.0

Visual Studio .NET (2002)

C# 1.2

Октябрь 2003

Апрель 2003

.NET Framework 1.1

Visual Studio .NET 2003

C# 2.0

Июнь 2006

Сентябрь 2006

Сентябрь 2005

Ноябрь 2005

.NET Framework 2.0

Visual Studio 2005

C# 3.0

Отсутствует

Август 2007

Ноябрь 2007

.NET Framework 3.5

Visual Studio 2008

C# 4.0

Апрель 2010

Апрель 2010

.NET Framework 4

Visual Studio 2010

C# 5.0

Декабрь 2017

Отсутствует

Июнь 2013

Август 2012

.NET Framework 4.5

Visual Studio 2012

C# 6.0

Отсутствует

Июль 2015

Июль 2015

.NET Framework 4.6

Visual Studio 2015

C# 7.0

Отсутствует

Март 2017

Март 2017

.NET Framework 4.6.2

Visual Studio 2017

C# 8.0

Отсутствует

 

Сентябрь 2019

.NET Framework 4.8

Visual Studio 16.3.0

3. Чем интересен C#?

Си шарп – действительно интересный инструмент, достойный внимания. Он уверенно занимает высокие позиции в рейтингах востребованных ЯП на рынке труда. Потому имеет смысл изучить его возможности подробнее и понять, для чего и где стоит применять C#.

Компания Microsoft уделяет значительное внимание поддержке языка разработки, а потому регулярно появляются обновления и дополнения, исправляются выявленные баги в компиляторе, расширяются библиотеки. Разработчики заинтересованы в популяризации инструмента и прилагают к этому массу усилий.

Разработчики предоставляют подробную и развернутую документацию на своих официальных ресурсах. Кроме того, ответы практически на любые вопросы, связанные с работой в C#, можно найти в сети. Популярность языка привела к появлению множества профессиональных сообществ, посвященных Си шарпу. Существует множество учебников, курсов для новичков и миддлов, видео подборок и других обучающих материалов.

Инструментарий C# позволяет решать широкий круг задач, язык действительно очень мощный и универсальный. На нем разрабатывают:

- Приложения для WEB.

- Различные игровые программы.

- Приложения платформ Андроид или iOS.

- Программы для Windows.

Перечень возможностей разработки практически не имеет ограничений благодаря широчайшему набору инструментов и средств. Конечно, все это можно реализовать при помощи других языков, но некоторых из них узкоспециализированные, в других придется использовать дополнительные инструменты сторонних разработчиков. В C# решение широкого круга задач возможна быстрее, проще и с меньшими затратами времени и ресурсов.

К наиболее "интересным" особенностям языка относятся:

- Сборка мусора. Позволяет в автоматическом режиме очистить память от объектов, которые не используются, или уничтоженных приложений.

- Обработка исключений. С помощью этого инструмента можно легко выявлять и обрабатывать ошибки в коде. Способ является структурированным с широким набором функций. При этом важно не злоупотреблять возможностями работы с исключениями, так как при неправильном использовании появляется риск появления «багов».

- Единая система типов. В языке принята общая система работы с типами, начиная от примитивов и заканчивая сложными, в том числе, пользовательскими наборами. Применяется единый набор операций для обработки и хранения значений типизации. Также можно использовать ссылочные типы пользователя, что позволит динамически выделить память под объект или хранить упрощенную структуру в сети. Язык программирования запрещает обращение к переменным, которые не были инициализированы, что исключает возможность выполнения бесконтрольного приведения типов или выхода за пределы определенного массива данных.

- Управление версиями. Очень интересная особенность ЯП. Суть в том, что многие языки не уделяют должного внимания этому вопросу, и программы нередко перестают корректно работать при переходе на новую версию продукта. В C# это было исправлено.

 

4. Архитектура платформы (как все это работает)

Для работы приложений на C# необходимо установить и настроить платформу NET Framework. Она поставляется полностью бесплатно, применяется крайне широко, а потому проблем с пользовательскими устройствами обычно не возникает. Платформа встроена в установочный пакет Windows, при необходимости ее также можно скачать и «поставить» отдельно.

В рамках платформы к обработке исполняемого кода подключается среда CLR – единый объединенный набор библиотек и классов, который был разработан Майкрософт и является реализацией мирового стандарта Common Language Infrastructure (CLI).

После работы компилятора текст программы переводится в промежуточный язык IL, который «понимает» CLI. Работает это так. IL и все необходимые ресурсы, включая строки и рисунки формата BMP, сохраняются на жесткий диск в виде исполняемого файла dll или exe. Из таких файлов с промежуточным кодом формируется сборка приложения, которая включает в себя описание с полной информацией обо всех важных параметрах работы.

Непосредственно при выполнении программы CLR обращается к сборке и производит действия в зависимости от полученных сведений. Если код написан правильно и проходит проверку безопасности системы, производится компиляция из IL в инструкции в машинные команды.

В результате код C# считается управляемым, т.е. он компилируется в двоичный вид на пользовательском устройстве с учетом особенностей аппаратной части и установленной системы на машине клиента.

 

 

5. Элементы синтаксиса

Синтаксис языка практически не отличается от языков семейства С. Ниже приведем небольшой пример наиболее используемых в написании кода элементов.

C# на протяжении долгого времени уверенно лидирует в рейтинге лучших и наиболее востребованных на рынке разработки языков. Сначала им заинтересовались только разработчики, которые пишут приложения под Windows. Но в процессе развития C# «научился» работать на Mac, Linux, IOS и Android. А после того, как код платформы открыли для всех желающих, были сняты практически все возможные ограничения в применении C#. В результате язык активно развивается, применяется все шире. Рекомендован к изучению в качестве одного из базовых для разработчиков любого профиля.

 

Вопросы для самоконтроля

1. Опишите историю создания языка C#.

2. Какие особенности имеет язык C#? Где его используют?

3. Как происходит компиляция программ на C#?