У тексті на будь-якому природному мовою можна виділити чотири основні елементи: символи, слова, словосполучення і пропозиції. Подібні елементи містить і алгоритмічний мову, тільки слова називають лексемами (елементарними конструкціями), словосполучення - виразами, а пропозиції - операторами. Лексеми утворюються із символів, вирази - з лексем і символів, а оператори - з символів, виразів і лексем. У цьому записі розглянуто алфавіт мови програмування C ++ та його лексеми.
Алфавіт C ++
Алфавіт C ++ включає:
- великі та малі латинські букви і знак підкреслення;
- арабські цифри від 0 до 9;
- спеціальні знаки :. <>. | [] () + - /% *. \ '. <=>. #
- пробільні символи: пробіл, символи табуляції, символи переходу на новий рядок.
З символів алфавіту формуються лексеми мови:
- ідентифікатори;
- ключові (зарезервовані) слова;
- знаки операцій;
- константи;
- роздільники (дужки, крапка, кома, пробільні символи).
Межі лексем визначаються іншими лексемами, такими, як роздільники або знаки операцій.
ідентифікатори
Ідентифікатор - це ім'я програмного об'єкта. В ідентифікатор можуть використовуватися латинські букви, цифри і знак підкреслення. Великі та малі літери розрізняються, наприклад, sysop, SySoP і SYSOP - три різних імені. Першим символом ідентифікатора може бути буква або знак підкреслення, але не цифра. Прогалини всередині імен не допускаються.
Для поліпшення читаності програми слід давати об'єктам осмислені імена. Існує угода про правила створення імен, зване угорської нотації (оскільки запропонував її співробітник компанії Microsoft угорець за національністю), за яким кожне слово, яке складає ідентифікатор, починається з великої літери, а спочатку ставиться префікс, який відповідає типу величини, наприклад, iMaxLength, IpfnSetFirstDialog.
Інша традиція - розділяти слова, складові ім'я, знаками підкреслення: maxjength, number_of_galosh.
- ідентифікатор не повинен збігатися з ключовими словами та іменами використовуваних стандартних об'єктів мови;
- не рекомендується починати ідентифікатори з символу підкреслення, оскільки вони можуть збігтися з іменами системних функцій або змінних, і, крім того, це знижує мобільність програми;
- на ідентифікатори, використовувані для визначення зовнішніх змінних, накладаються обмеження компоновщика (використання різних компонувальник або версій компоновщика накладає різні вимоги на імена зовнішніх змінних).
Ключові слова
Ключові слова - це зарезервовані ідентифікатори, які мають спеціальне значення для компілятора. Їх можна використовувати тільки в тому сенсі, в якому вони визначені. Список ключових слів C ++ наведено в таблиці нижче.
Список ключових слів C ++
знаки операцій
Знак операції - це один або більше символів, що визначають дію над операндами. Усередині знака операції пропуски не допускаються. Операції поділяються на унарні, бінарні і тернарного за кількістю що беруть участь в них операндів. Знаки операцій наведені в окремій замітці - Операції мови C ++
Один і той же знак може інтерпретуватися по-різному в залежності від контексту. Всі знаки операцій за винятком [], () і. являють собою окремі лексеми.
Більшість стандартних операцій може бути перевизначити (перевантажено).
Константами називають незмінні величини. Розрізняються цілі, речові, символьні і рядкові константи. Компілятор, виділивши константу в якості лексеми, відносить її до одного з типів по її зовнішньому вигляду (формат константи можна вказати самостійно).
Формати констант, що відповідають кожному типу, наведені в таблиці нижче.
Десятковий: последовательностьдесятічних цифр, начінающаясяне з нуля, якщо це не число нуль
Восьмирічний: нуль, за яким
слідують восьмеричні цифри
Шістнадцятковий: 0х або 0Х,
за яким слідують шістнадцяткові
Послідовність символів, укладена в лапки
«Тут був Vasia», »\ t3наченіе r = \ 0xF5 \ n»
Не слід забувати, що у кожного типу даних є діапазон допустимих значень.
Якщо потрібно сформувати негативну цілу або речову константу, то перед константою ставиться знак унарною операції зміни знака (-), наприклад: -218, -022, -0х3C, -4.8, -0.1e4.
Матеріальна константа в експоненційному форматі представляється у вигляді мантиси і порядку. Мантиса записується зліва від знака експоненти (Е або е), порядок - праворуч від знака. Значення константи визначається як добуток мантиси і зведеного в зазначену в порядку ступінь числа 10. Зверніть увагу, що прогалини всередині числа не допускаються, а для відділення цілої частини від дробової використовується не кома, а крапка.
Всі рядкові літерали розглядаються компілятором як різні об'єкти.
Строкові константи, відокремлені в програмі тільки пробільними символами, при компіляції об'єднуються в одну. Довгу строкову константу можна розмістити на декількох рядках, використовуючи в якості знака переносу зворотну косу риску, за якою слідує новий рядок. Ці символи ігноруються компілятором, при цьому наступний рядок сприймається як продовження попередньої. Наприклад, рядок
"Ніхто не задоволений своєю \
зовнішністю, але всі задоволені \
своїм розумом "
повністю еквівалентна рядку
"Ніхто не задоволений своєю зовнішністю, але всі задоволені своїм розумом"
В кінець кожного строкового літерала компілятором додається нульовий символ, що представляється керуючою послідовністю \ 0.
Тому довжина рядка завжди на одиницю більше кількості символів в її записи. Таким чином, порожній рядок. має довжину 1 байт.
Зверніть увагу на різницю між рядком з одного символу, наприклад, «А», і символьної константою? А ?.
Порожня символьна константа неприпустима.
За матеріалами книги «Програмування на мові високого рівня C \ C ++», Павловська Т.О.