Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи програмування л4.rtf
Скачиваний:
0
Добавлен:
11.07.2019
Размер:
194.12 Кб
Скачать
  1. Основи програмування

    1. Алфавіт, слова, ідентифікатори, роздільники, лексеми

У істотних мовах будь-які тексти складаються з речень. Речення – зі слів. Слова – з літер. Поспіль (разом) записані літери алфавіту утворюють слова. Слова, що записані поспіль відокремлюються одно від іншого роздільниками (пробілами, комами, дочками, дужками, тощо). Одна літера алфавіту мови не несе сенсу, окрім одно літерних слів, наприклад: «I», «a» (артикль), «в», «і», «з», тощо.

Слова та роздільники мають сенс та уявляють собою синтаксичні одиниці, що несуть смислове навантаження.

У програмуванні дуже схожа ситуація – наявні слова та роздільники.

До алфавіту більшості мов програмування відносять літери латинського алфавіту. У деяких мовах для запису програм вирисовується російські слова, що записані з використанням кирилиці. Крім літер латинського алфавіту до алфавіту мов програмування відносять спец символи. Деякі спец символи мають певний сенс. Поспіль записані декілька спец символів (2 іноді 3) теж можуть утворювати визначений сенс.

Спец символи розподіляються на категорії.

Наведемо категорії спец символів:

  1. для поширення літер латинського алфавіту (наприклад: «$», «_»);

  2. прості розподільників (наприклад: пробіл, Enter);

  3. змістовні (наприклад: «;» - крапка з комою, «.» - крапка);

У мові програмування слова розподіляються на дві категорії: службові (зарезервовані) слова та ідентифікатори (імена). Використання службових слів мови Pascal та їх перелік наведено у наступному параграфі.

В свою чергу, ідентифікатори розподіляються на ідентифікатори вбудованих засобів та приєднаних бібліотек та на ідентифікатори визначені користувачем (програмістом). У мові Pascal, C, C++ та багатьох сучасних мовах програмування високого рівня визначення програмістом ідентифікаторів обов’язково здійснюється шляхом їхньої об’яви (опису).

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

Лексема - найменша неподільна одиниця, що складається з одного чи декількох літер або спец символів та має певний сенс (семантичне значення).

До лексем відносяться:

  • слова:

  • службові (зарезервовані) слова;

  • ідентифікатори вбудованих (стандартних) засобів (процедур підпрограм та процедур функцій);

  • ідентифікатори приєднаних бібліотек

  • ідентифікатори, що визначені програмістом);

  • лексеми прості роздільники (наприклад: «_» - пробіл, «;», «Enter» або «¿» - line feed, newline, line break, end-of-line (EOL), «возврат каретки», «новий рядок (рос: строка)», та інші;

  • змістовні спец символи (наприклад: «;» - крапка з комою, «.» - крапка, «+» - позначка операції додавання та багато інших);

  • поспіль записані декілька спец символів (2, 3), що утворюють певний сенс (наприклад: «:=» - позначка для оператора присвоєння у мові Pascal, «=/=» - не дорівнює, «<=>»; «==», «->» та багато інших);

  • записи констант:

  • строкові (текстові) константи або рядки, що записані з використанням будь-яких символів, що наявні та не наявні на клавіатурах (наприклад: “Привіт, мир!”);

  • числові (цілі, з фіксованою крапкою та з порядком);

  • логічні (булеві) – true та false;

  • Null, Nil – позначки константи спеціального значення вказівника;

  • записи коментарів.

Прості роздільники замінюють один іншого. Декілька поспіль записаних простих роздільників має той самий сенс, що і один.

Коментарі мають сенс простого роздільника. Коментарі не сприймаються компілятором, транслятором чи інтерпретатором. Записи лексем в коментарях та у текстових константах лексем з себе не уявляють, а входять у склад неподільної лексеми текстової константи чи коментаря.

Змістовні спец символи будуть лексемами тільки за умовою їх використання у відповідному контексті (місці). У записах констант строк можуть бути присутні не тільки будь-які клавіатурні символи, а й службові слова, роздільники та ідентифікатори. У такому випадку, виходячи з контексту, такі службові слова, роздільники чи ідентифікатори не уявляють собою лексеми та, відповідно не є службовими словами, роздільниками чи ідентифікаторами. Наприклад:

Name:=”Іванов Перт Сидорович. сonst; := ”;

Поруч, тобто без використання лексем роздільників можна записувати лексеми слова та лексеми з спец символами. Приклад: «I21:=a1+b1;».

Компілятор, транслятор чи інтерпретатор на початку синтаксичного аналізу здійснює виділення (відокремлення) всіх лексем. Весь текст програми уявляє собою поспіль записані лексеми.