ТОП 10:

Си#. Основные характеристики



Основные этапы развития языка

 

Исторические корни возникновения основной ветви языков программирования, которая привела к появлению C#, ведут к 60-м г.г., а именно, ко времени возникновения языка B.

Последний является типичным представителем ранних императивных языков

программирования. Язык B был придуман в 1963 году творческим коллективом,

основным создателем языка принято считать К. Томпсона из Технологического

университета Массачусетса (Ken Thompson, MIT). Основной целью разработки языка

была реализация операционной системы UNIX. Уже существовавший язык PL/I,

применявшийся в то время для мейнфреймов производства компании IBM, был

достаточно громоздким и менее подходил для поставленной задачи, чем новое,

оригинальное решение ученых-практиков.

Следующим шагом в «алфавите» языков программирования, ведущем к языку C#, стал язык C, который был изобретен на основе языка B в 1972 году. Авторами нового языка программирования стали уже известный нам Кен Томпсон, а также Д. Ритчи (Dennis

Ritchie), которые работали в исследовательской лаборатории компании AT&T (AT&T Bell

Telephone Laboratories). В варианте C язык B расширился за счет явного использования

типов (напомним, что языки и теории с типами имеют существенные преимущества перед

бестиповыми аналогами), структур и ряда новых операций.

Дальнейшее развитие языка происходило в стенах той же организации. И снова примерно через 10 лет, в 1984 году, Б. Страуструп (Bjarne Stroustrup, Bell Labs) выступил с проектом языка С++ - ООП-расширения языка C, в котором вводится понятие класса как объекта данных. Заметим, что название C++ для нового языка предложил Р.Маскитти (Rics Mascitti, Bell Labs), представляющий ту же организацию.

Наконец, уже в 2000 году, более чем через 15 лет, корпорация Microsoft выпустила в свет C++ нового поколения под названием C# («Си шарп»), основным постулатом которого является высказывание: «всякая сущность есть объект». Язык основан на строгойкомпонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода

 

 

Основные возможности C#

Язык программирования C# вобрал лучшие черты целого ряда своих предшественников. Кроме упомянутой ранее ветви языков B-C-C++, необходимо указать еще несколько знаковых для настоящего времени языков программирования, а именно, Java и Visual Basic.

Несмотря на весьма существенные различия между компонентной объектной моделью COM (основного стандарта Microsoft для компонентного проектирования и реализациипрограммного обеспечения) и моделью Java Beans, базовым стандарт Sun Microsystems для компонент (зависимой от языка реализации), язык программирования C# имеет довольно много общего с языком Java. Естественно, немало черт язык программированияC# унаследовал и от своего предшественника, созданного корпорацией Microsoft, языкаVisual Basic.

Как уже отмечалось, язык программирования C# основан на строгой компонентной

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

сближают языки программирования C# и Java, являются механизмы интерфейсов, обработки исключительных ситуаций, нитей (threads). Сборка мусора и пространства имен

реализованы в этих двух языках сходным образом. Оба языка программирования характеризуются сильной (строгой) типизацией и динамической загрузкой кода при выполнении программы.

От своего прямого предшественника, языка программирования C++, языком C# унаследованы следующие механизмы: «перегруженные» операторы, небезопасные арифметические операции с плавающей точкой, а также ряд других особенностей синтаксиса.

 

Краткий список основных возможностей C#

Несмотря на то, что целый ряд конструктивных синтаксических механизмов иособенностей реализации унаследован языком программирования C# от прародителей (C++, Visual Basic и Java), возможности этого нового языка программирования не ограничиваются суммой возможностей его исторических предшественников. На данном этапе ограничимся перечислением основных возможностей, которыми характеризуется язык программирования C#.

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

- компонентно-ориентированный подход к программированию (который характерен и для идеологии Microsoft .NET в целом);

- свойства как средство инкапсуляции данных (характерно также в целом для ООП);

- обработка событий (имеются расширения, в том числе в части обработки исключений, в частности, оператор try);

- унифицированная система типизации (соответствует идеологии Microsoft .NET в целом);

- делегаты (delegate – развитие указателя на функцию в языках C и C++);

- индексаторы (indexer – операторы индекса для обращения к элементам класса- контейнера);

- перегруженные операторы (развитие ООП);

- оператор foreach (обработка всех элементов классов-коллекций, аналог Visual Basic);

- механизмы boxing и unboxing для преобразования типов;

- атрибуты (средство оперирования метаданными в COM-модели);

- прямоугольные массивы (набор элементов с доступом по номеру индекса и одинаковым количеством столбцов и строк).

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

 

Структура программы на языке C#

 

 

 

Программа на C# может состоять как из одного, так и из нескольких файлов, содержащих исходный текст на языке программирования C#. Каждый такой файл имеетрасширение .CS (в нашем примере файлы названы FileName1.cs, FileName2.cs и FileName1.cs).

Любой файл с исходным текстом на языке программирования C# может как содержать пространства имен, так и не содержать их (в нашем примере файл названы FileName2.cs содержит три пространства имен (A, B и C), а FileName1.cs и FileName3.cs не содержат пространств имен).

Наконец, каждое пространство имен может как содержать описание (одного или нескольких) классов, так и не содержать их (в нашем примере пространство имен B содержит три описания трех классов (X, Y и Z), а пространство имен А и С не содержатни одного описания классов).

 

 

 







Последнее изменение этой страницы: 2016-07-14; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.228.10.64 (0.009 с.)