Зворотний зв'язок

ПАСКАЛЬ: МОВА ТА МЕТАМОВА

<список імен> ::= <ім'я>{','<ім'я>}.Означення змінних у Паскаль-програмі складається з довільного числа списків змінних, за якими після двокрапки записано ім'я типу та ';'. Списків з іменами типів може взагалі не бути. Будь-якому зі списків може передувати слово var (перед першим воно обов'язкове). Це слово відокремлюється від імені хоча б одним пропуском. Якщо обмежитися типами integer та real, то синтаксис означення змінних можна задати РБНФ

<означення змінних> ::= [ 'var '<список імен> ':' <ім'я типу> ';'

{ ['var ']<список імен>':'<ім'я типу>';' }

]

<ім'я типу> ::= 'integer' | 'boolean'

Оператори мови Паскаль, на відміну від означень, не закінчуються роздільником ';', і синтаксис непорожньої послідовності операторів задається РБНФ

<послід. операторів> ::= <оператор> {';' <оператор>}

Приклад 5. Розглянемо вирази з цілими сталими, в яких можуть бути виклики одномісної функції odd. Виразом є ціла стала, а також:

1.вираз у дужках,

2.два вирази й знак бінарної операції між ними,

3.вираз із знаком унарної операції на початку,

4.виклик функції odd із виразом у дужках.

Ці неформальні, але однозначні правила легко перекладаються на мову БНФ. Нехай позначає вираз (англійське Expression), – сталу (Constant), – знак бінарної (двомісної) операції (Binary Operation Sign), – знак унарної (одномісної) операції (Unary Operation Sign), – ім'я функції (Function Name). Тоді

::= | '('')' | |

| '('')'

::= <Ц>{<Ц>}

(уточнення інших нетерміналів залишається читачеві, ).

4. Синтаксичні діаграми

Мова форм Бекуса-Наура – не єдина метамова для описання структури конструкцій мов програмування. Досить поширеною є також метамова синтаксичних діаграм.

В основі цієї метамови також лежать нетермінальні й термінальні символи. Але тут вони записуються у прямокутниках та колах (овалах) відповідно. Наприклад, нетермінали та <оператор> позначаються так:

Відповідно термінальні символи '(' та else мають вигляд

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


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат