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

Мова та метамова

Розглядаючи поняття "ідентифікатор", можна ввести поняття "послідовність букв і цифр, можливо, порожня". Позначимо ці два поняття відповідно нетерміналами <Ід> і <ПБЦ>. Введемо також поняття "буква" й "цифра" (нетермінали <Б> і <Ц>). Послідовність букв і цифр або порожня, або починається буквою або цифрою, за якою записано послідовність букв і цифр. Іншими словами,

<Ід> ::= <Б><ПБЦ>

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

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

<ПБЦ> ::= <> | (<Б> | <Ц>) <ПБЦ>.

Узагальнимо букви й цифри поняттям "символ", додавши правило <символ> ::= <Б> | <Ц>. Тоді <ПБЦ> можна задати двома правилами:

<ПБЦ> ::= <> | <символ> <ПБЦ>.

За допомогою цих правил із нетермінала <ПБЦ> виводяться всі можливі послідовності символів:

<>, <символ>, <символ><символ>, … ,

і тільки вони. Позначимо множину послідовностей, складених із <символ>, метавиразом {<символ>} із новими метасимволами "{", "}". Вважатимемо, що всі послідовності символів вивідні з цього метавиразу. Отже, правило

<ПБЦ> ::= {<символ>}

за нашим означенням є еквівалентним правилам

<ПБЦ> ::= <> | <символ> <ПБЦ>. 

Взагалі, якщо X – довільний метавираз, то метавираз {X} позначає всі послідовності (у тому числі порожню) виразів, вивідних із X.

Дужки {} називаються ітераційними. З їх використанням поняття ідентифікатора з останнього прикладу можна задати так:

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

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

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

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

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

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

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


Реферати!

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







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

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

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