Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_2003.doc
Скачиваний:
7
Добавлен:
16.04.2019
Размер:
275.46 Кб
Скачать

6. В чем отличие платформы . Net от стандартного подхода к разработке программ.

- Полное и абсолютное межъязыковое взаимодействие.

- Общая среда выполнения для любых приложений .NET, вне зависимости от того, на каких языках они были созданы.

- Единая программная модель.

- Упрощенная модель программирования.

- Отсутствие проблем с версиями.

- Упрощенное развертывание. Ранее

- Работа на многих платформах.

- Интеграция языков программирования. Технология СОМ поддерживает взаимодействие разных языков – .NET Framework обеспечивает интеграцию разных языков, то есть один язык может использовать типы, созданные на других языках.

- Упрощенное повторное использование кода. Все описанные выше механизмы позволяют создавать собственные классы, предоставляющие сервис сторонним приложениям

- Автоматическое управление памятью (сбор мусора).

- Проверка безопасности типов CLR может проверять безопасность использования типов в коде, что гарантирует корректное обращение к существующим типам.

- Единый принцип обработки сбоев. Один из самых неприятных моментов Windows-программирования – несогласованный стиль сообщений о сбоях. Одни функции возвращают коды состояний Win32, другие – HRESULT, третьи генерируют исключения. В CLR обо всех сбоях сообщается через исключения, которые позволяют отделить код, необходимый для восстановления после сбоя, от основного алгоритма. Такое разделение облегчает написание, чтение и сопровождение программ. Кроме того, исключения работают в многомодульных и многоязыковых приложениях. И в отличие от кодов состояний и HRESULT исключения нельзя проигнорировать. CLR также предоставляет встроенные средства анализа стека, заметно упрощающие поиск фрагментов, вызывающих сбои.

- Безопасность. Традиционные системы безопасности обеспечивают управление доступом на основе учетных записей пользователей. Это проверенная модель, но она подразумевает, что любому коду можно доверять в одинаковой степени.

- Взаимодействие с существующим кодом.

7. Алфавит и лексемы языка программирования с#.

Алфавит (или множество литер) языка программирования С# составляют символы таблицы кодов ASCII. Алфавит С# включает:

• строчные и прописные буквы латинского алфавита (мы их будем называть буквами);

• цифры от 0 до 9;

• символ «_» (подчеркивание — также считается буквой);

• набор специальных символов: " { }, 1 [ ] + — %/ \; ' : ? < > = ! & # ~ *-

• прочие символы.

Алфавит С# служит для построения слов, которые в C++ называются лексемами. Различают пять типов лексем:

• идентификаторы;

• ключевые слова;

• знаки (символы) операций;

• литералы;

• разделители.

Почти все типы лексем (кроме ключевых слов и идентификаторов) имеют собственные правила словообразования, включая собственные подмножества алфавита.

Лексемы обособляются разделителями. Этой же цели служит множество пробельных символов, к числу которых относятся пробел, табуляция, символ новой строки и комментарии.

Идентификаторы:

Имена —это идентификаторы. Любая случайным образом составленная последовательность букв, цифр и знаков подчеркивания с точки зрения грамматики языка идеально подходит на роль имени любого объекта, если только начинается с буквы. Желательно создавать составные осмысленные имена. В этом случае в одно слово можно «втиснуть» предложение, которое в доступной форме представит информацию о типе объекта, его назначении и особенностях использования.

Рассмотрим правила построения идентификаторов из букв алфавита.

• Первым символом идентификатора С# может быть только буква.

• Следующими символами идентификатора могут быть буквы, цифры и нижнее подчеркивание.

• Длина идентификатора не ограничена.

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

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

Символы /* начинают комментарий, заканчивающийся символами */ . Символы // начинают комментарий, заканчивающийся в конце строки, на которой они появились. И здесь вся последовательность символов эквивалентна пропуску.

Литералы:

В С# существует четыре типа литералов:

• целочисленный литерал (1,2,3,4);

• вещественный литерал (с плав. точкой);

• символьный литерал (закл в апостроф);

• строковый литерал (закл в кавычки);

• логический (TRUE or FALSE).

Литералы — это особая категория слов языка. Для каждого подмножества литералов используются собственные правила словообразования.