Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентации лекций по ТОИ / 5-Формальные языки и грамматики.pps
Скачиваний:
135
Добавлен:
02.06.2015
Размер:
495.62 Кб
Скачать

Определение формального языка с помощью БНФ: метасимволы

Метасимволы БНФ:

(апостроф)

< > (угловые скобки)

[ ] (квадратные скобки)

{ } (фигурные скобки)

( ) (круглые скобки)

| (вертикальная черта)

Например:

Угловые скобки (символы ‘<’ и ‘>’) используются для выделения в тексте нетерминальных символов – нетерминальные символы заключаются в угловые скобки.

<присваивание> ::= <переменная> ':=' <выражение>

31

Определение формального языка с помощью БНФ: метасимволы

Метасимволы БНФ:

(апостроф)

< > (угловые скобки)

[ ] (квадратные скобки)

{ } (фигурные скобки)

( ) (круглые скобки)

| (вертикальная черта)

Например:

Квадратные скобки (символы ‘[’ и ‘]’) используются для указания на возможность опускать их содержимое в записи конструкции.

<ветвление> ::= 'if ' <условие> 'then' <оператор> ['else' <оператор>]

32

Определение формального языка с помощью БНФ: метасимволы

Метасимволы БНФ:

(апостроф)

< > (угловые скобки)

[ ] (квадратные скобки)

{ } (фигурные скобки)

( ) (круглые скобки)

| (вертикальная черта)

Например:

Фигурные скобки (символы ‘{’ и ‘}’) применяются для указания на возможность выписывания их содержимого нуль и более раз подряд в конструкции, заданной правилом.

<целое> ::= <цифра>{<цифра>}

33

Определение формального языка с помощью БНФ: метасимволы

Метасимволы БНФ:

 

(апостроф)

Символ | (вертикальная черта,

< > (угловые скобки)

читается «или»), разделяющая

[ ] (квадратные скобки)

цепочки символов в правой части

{ } (фигурные скобки)

правила (эти цепочки представляют

( ) (круглые скобки)

альтернативы в описании

| (вертикальная черта)

конструкции).

 

Например:

 

<цифра> ::= '0' | |'1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'

34

<идентификатор> ::= <буква>{<буква>|<цифра>}

 

Определение формального языка с помощью БНФ: метасимволы

Метасимволы БНФ:

(апостроф)

< > (угловые скобки)

[ ] (квадратные скобки)

{ } (фигурные скобки)

( ) (круглые скобки)

| (вертикальная черта)

Например:

В расширенной БНФ альтернативы могут быть «локализованы» – быть частью правила, если эта «часть» заключена в скобки.

Круглые скобки (символы ‘(’ и ‘)’) в расширенной нотации используются для группировки нескольких вариантов определения понятия (нескольких альтернатив).

<сравнение> ::= 35 <выражение> ('<' | ‘<=' | '=' | ‘<>' | ‘>=' | '>') <выражение>

Определение формального языка с помощью БНФ: примеры

В различных источниках для выделения символов языка (терминальных и нетерминальных) используются различные способы. Например:

<условный оператор> ::=

if <условие> then <оператор> |

if <условие> then <оператор> else <оператор> или

<условный оператор> ::=

if <условие> then <оператор> [ else <оператор> ]

Здесь if, then, else A – терминальные символы, <условный оператор>, <условие>, <оператор> N – нетерминальные

36 символы (понятия).

Определение формального языка с помощью диаграмм Вирта

Диаграммы Вирта – визуальный язык описания синтаксиса языков программирования.

Основные элементы диаграмм, представляющие элементы языка:

Нетерминальный

Терминальный

символ

символ

Стрелки показывают порядок следования терминальных или нетерминальных символов в конструкциях языка.

Возможные альтернативы показываются ветвлением в диаграмме.

37

Определение формального языка с помощью диаграмм Вирта: примеры

Условный

оператор

if Выражение

then Оператор

else Оператор

38

Сравнение диаграммы Вирта и БНФ: пример

Условный

оператор

if Выражение

then Оператор

else Оператор

 

<Условный оператор> ::=

39

if <Выражение> then <Оператор>

[ else <Оператор> ]

Определение формального языка с помощью диаграмм Вирта: примеры

40

Соседние файлы в папке Презентации лекций по ТОИ