Мова та метамова, Детальна інформація

Мова та метамова
Тип документу: Реферат
Сторінок: 6
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 13.9
Скачувань: 986
Дужки {} називаються ітераційними. З їх використанням поняття ідентифікатора з останнього прикладу можна задати так:

<Ід> ::=<Б> { <Б> | <Ц> }

<Б> ::= 'A' | 'B' | 'C'

<Ц> ::= '0' | '1'

або навіть так:

<Ід> ::=( 'A' | 'B' | 'C' ){ 'A' | 'B' | 'C' | '0' | '1' }.

Приклад 4. У мовах програмування широко використовується поняття "список імен, розділених комами". Структуру таких списків можна задати РБНФ

<список імен> ::= <ім'я>{','<ім'я>}.

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

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

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

]

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

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

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

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

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

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

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

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

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

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

| '('')'

::= <Ц>{<Ц>}

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

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

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

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

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

 

The online video editor trusted by teams to make professional video in minutes