Синтаксис і семантика мови програмування

Синтаксис і семантика мови програмування

Головна | Про нас | Зворотній зв'язок

Будь-яка мова, в тому числі і мову програмування, підкоряється ряду правил. Їх прийнято розділяти на правила, що визначають синтаксис мови, і правила, що визначають його семантику.

Синтаксис мови-сукупність правил, що визначають допустимі конструкції (слова, речення) мови, його форму.

Мови програмування відносяться до групи формальних мов, для яких на відміну від природних мов однозначно визначені синтаксис і семантика. Опис синтаксису мови включає визначення алфавіту і правил побудови різних конструкцій мови з символів алфавіту і простіших конструкцій. Для цього зазвичай використовують форму Бекуса-Наура (БНФ) або синтаксичні діаграми. Опис конструкції в БНФ складається з символів алфавіту мови, назв більш простих конструкцій і двох спеціальних знаків:

· «:: =» - Новомосковскется як «може бути замінено на",

При цьому символи алфавіту мови, які часто називають термінальними символами або терміналами, записують в незмінному вигляді. Назви конструкцій мови (нетермінальні символи або нетермінали), що визначаються через деякі інші символи, під час запису укладають в кутові дужки ( «<», «>»).

Правила побудови конструкції <Целое>, записані в

БНФ, можуть виглядати наступним чином:

<Целое>. = <3нак> <Целое без знака> | <Целое без знака>

<Целое без знака>. = <Целое без знака> <Цифра> | <Цифра>

<Цифра>. = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Для відображення того, що конструкція <Целое без знака> може включати необмежену кількість цифр, використано правило з лівосторонньої рекурсією. Багаторазове застосування цього правила дозволяє побудувати ціле число з будь-якою кількістю цифр.

Синтаксичні діаграми відображають правила побудови конструкцій в більш наочній формі. На такий діаграмі символи алфавіту зображують блоками в овальних рамках, назви конструкцій - в прямокутних, а правила побудови конструкцій - у вигляді ліній зі стрілками на кінцях. При цьому, якщо лінія входить в блок, то в описувану конструкцію повинен входити відповідний символ. Розгалуження лінії означає, що при побудові конструкції можливі варіанти. На рис. 2.1 представлена ​​синтаксична діаграма, що ілюструє перші два правила опису конструкції <Целое>. З діаграми видно, що ціле число може бути записано зі знаком або без і включати довільну кількість цифр.

Для опису синтаксичних конструкцій своєї мови Н. Вірт використовував саме синтаксичні діаграми, тому в тих випадках, коли словесний опис синтаксису конструкції довго і нечітко, ми будемо використовувати синтаксичні діаграми.

Алфавіт мови програмування Borland Pascal 7.0 включає:

1. рядкові, прописні букви латинського алфавіту (a..z, A..Z) і знак підкреслення (_), який також у багатьох випадках вважається літерою (малі та великі літери не розрізняються);

3. спеціальні знаки, що складаються з одного і двох символів:

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

З символів алфавіту відповідно до правил синтаксису будують різні конструкції. Найпростішою з них є конструкція <Идентификатор>.

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

У Borland Pascal ідентифікатор представляє собою послідовність літер латинського алфавіту (включаючи символ підкреслення) і цифр, яка обов'язково починається з букви.

Синтаксична діаграма ідентифікатора приведена на рис. 2.2. Решта конструкції будуть розглянуті в наступних розділах. Семантику мови програмування закладають в його компілятор. Таким чином, синтаксично коректна програма, написана на мові програмування, після перетворення її в послідовність машинних команд забезпечить виконання комп'ютером необхідних операцій.

Програма на Borland Pascal складається з трьох частин: заголовка, розділу описів і розділу операторів.

Приклад програма, яка реалізує алгоритм Евкліда для визначення найбільшого спільного дільника двох натуральних чисел.

Схожі статті