Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие КНЕУ.doc
Скачиваний:
24
Добавлен:
07.03.2016
Размер:
3.9 Mб
Скачать

Розділ 2. Основні поняття мови

2.1. Склад мови

2.1.1 Алфавіт і лексеми

У С # використовується кодування символів Unicode. Існує багато різних кодувань символів. Наприклад, в Windows часто використовується кодування ANSI, а конкретно - СР1251. Кожен символ представляється в ній одним байтом (8 біт), тому в цьому кодуванні можна одночасно задати лише 256 символів. У першій половині кодової таблиці знаходяться латинські букви, цифри, знаки арифметичних операцій і інші поширені символи. Другу половину займають символи російського алфавіту. Якщо потрібно представляти символи іншого національного алфавиту (наприклад, албанського), необхідно використовувати іншу кодову таблицю. Кодування Unicode дозволяє представити символи всіх існуючих алфавітів одночасно, що корінним чином поліпшує переносимість текстів. Кожному символу відповідає свій унікальний код. Природно, що при цьому для зберігання кожного символу потрібно більше пам'яті. Перші 128 Unicode-символів відповідають першій частині кодової таблиці ANSI. Алфавіт С # включає:

  • літери (латинські і національних алфавітів) і символ підкреслення (_), який вживається поряд з літерами;

  • цифри;

  • спеціальні символи, наприклад +, *, {, &;

  • пробільні символи (пробіл і символи табуляції);

  • символи переводу рядка.

З символів складаються більші будівельні блоки: лексеми, директиви препроцесора і коментарі.

Лексема це мінімальна самостійна одиниця мови. Існують такі види лексем:

  • імена (ідентифікатори);

  • ключові слова;

  • знаки операцій;

  • роздільники;

  • літерали (константи).

Лексеми мови програмування аналогічні словам природної мови. Наприклад, лексемами є число 128 (але не його частина 12), ім'я Vasia, ключове слово goto і знак операції додавання +.

Директиви препроцесора прийшли в С # з мови С ++. Препроцесор - попередня стадія компіляції, на якій формується вид вихідного тексту програми. Наприклад, за допомогою директив (інструкцій, команд) препроцесора можна включити або виключити з процесу компіляції фрагменти коду. Директиви препроцесора не відіграють в С # такої важливої ролі, як в С + +. Ми розглянемо їх детально в розділі "Директиви препроцесора". Коментарі призначені для запису пояснень до програми і формування документації. Правила запису коментарів описані далі в цьому розділі. З лексем складаються вирази і оператори. Вираз задає правило обчислення деякого значення. Наприклад, вираз а + b задає правило обчислення суми двох величин. Оператор задає закінчений опис деякої дії, даних або елемента програми. Наприклад: int а; - оператор опису цілочисельної змінної а.

2.1.2. Ідентифікатори і ключові слова

Імена в програмах служать тій же меті, що і імена в світі людей, - щоб звертатися до програмних об'єктів і розрізняти їх, тобто ідентифікувати. Тому імена також називають ідентифікаторами. У ідентифікаторі можуть використовуватися букви, цифри і символ підкреслення. Прописні і рядкові букви розрізняються, наприклад, sysop, Sysop і Sys0p - три різних імені. Першим символом ідентифікатора може бути буква або знак підкреслення, але не цифра. Довжина ідентифікатора не обмежена. Пропуски усередині імен не допускаються. У ідентифікаторах С# дозволяється використовувати окрім латинських букв букви національних алфавітів. Наприклад, Собачка або gg є правильними ідентифікаторами. Більш того, в ідентифікаторах можна застосовувати навіть так звані escape-послідовності Unicode, тобто представляти символ за допомогою його коду в шістнадцятирічному вигляді з префіксом \u, наприклад \u00F2.

Імена даються елементам програми, до яких потрібно звертатися: змінним, типам, константам, методам, міткам і так далі. Ідентифікатор створюється на етапі оголошення змінної (методу, типу і тому подібне), після цього його можна використовувати в подальших операторах програми. При виборі ідентифікатора необхідно мати на увазі наступне:

  • ідентифікатор не повинен збігатися з ключовими словами.

  • не рекомендується починати ідентифікатори з двох символів підкреслення, оскільки такі імена зарезервовані для службового використання.

Для поліпшення читабельності програми слід давати об'єктам осмислені імена, складені відповідно до певних правил. Зрозумілі і узгоджені між собою імена - основа хорошого стилю програмування. Існує декілька видів так званих нотацій - угод про правила створення імен.

У нотації Паскаля кожне слово, що становить ідентифікатор, починається з прописної букви, наприклад, MaxLength, MyFuzzyShoosh. Угорська нотація (її запропонував угорець за національністю, співробітник компанії Microsoft) відрізняється від попередньої наявності префікса, відповідного типу величини, наприклад, iMaxLength, lpFfuzzy. Згідно нотації Camel, з прописної букви починається кожне слово, що становить ідентифікатор, окрім першого, наприклад, maxLength, myFuzzyShoosh. Ще одна традиція - розділяти слова, складові ім'я, знаками підкреслення: max_length, my_fuzzy_shoosh, при цьому всі складові частини починаються з рядкової букви.

У С# для іменування різних видів програмних об'єктів найчастіше використовуються дві нотації: Паскаля і Camel.

Ключові слова - це зарезервовані ідентифікатори, які мають спеціальне значення для компілятора. Їх можна використовувати тільки в тому сенсі, в якому вони визначені. Список ключових слів С# приведений в таблиці. 2.1.