Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_po_EVM.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.78 Mб
Скачать

I.7. Пример грамматики

Это грамматика G, которая определяет язык целых десятичных цифр со знаком

G=({0,l,2,3,… ,9,-,+},{<число>,<чс>,<цифра>},Р,<число>)

Р:

<<число> → <чс> | +<чс> | —<чс>

<<чс> → <цифра> | <чс>|<цифра>

<<цифра> → 0 | 1 | 2 | …| 9

Составляющие элементы этой грамматики:

1) множество терминальных символов VT содержит двенадцать элементов: это десять

десятичных цифр и два знака;

2) множество нетерминальных символов VN содержит три символа: символы

<число> и <цифра>;

3) множество правил содержит 10 правил, которые записаны в три строки

Целевым символом является число. Символ <чс> бессмыслен.

В названии нетерминальных символов не обязательно быть осмысленным. Они применяются для удобства понимания символов грамматики. Их набор произволен. Набор терминальных символов всегда строго соответствует алфавиту языка, определяемого грамматикой. В языках целых десятичных чисел со знаком, в котором нетерминальные символы обозначаются большими латинскими буквами.

G' =( { 0 , 1 , 2 , 3 , …, 9 , - , +}, {S, T, F }, Р, S)

Р:

S → Т | +Т | —Т

Т → F | TF

F → 0 | l | 2 …| 9

Здесь изменилось лишь множество нетерминальных символов VN={STF}, а язык заданный грамматикой не изменился, поэтому грамматики G и G’ считаются эквивалентными.

I.8. Принцип рекурсии в правилах грамматики

Особенность формальных грамматик – это определение бесконечных множеств цепочек языка с помощью конечного набора числа правил, что достигается за счет рекурсий. Она в правиле грамматики выражается в том, что один из нетерминальных символов определяется сам через себя. Она может быть непосредственно явной, тогда символ определяется сам через себя в одном правиле, либо косвенно неявной, тогда тоже самое происходит через цепочку правил.

В рассмотренной ранее G

<чс> → <чс> <число>

G’

T→TH

Чтобы рекурсия не была бесконечной для участвующего в ней терминального символа грамматики должны существовать так же и другие правила, которые определяют его, минуя его самого, могут содержать множество рекурсий символа, в противном случае этот символ был бы не нужен. Такими правилами являются:

G

<чс> → <чс>

G’

T→F

Для большего понимания смысла рекурсии обращаются к семантики языка. В рассмотренных примерах это язык целых десятичных чисел со знаком.

Понятие числа.

Любая цифра сама по себе есть число, любые 2 цифры тоже число и т.д. Если строить определение числа таким методом, то оно никогда не будет законченным (разряд числа ничем не ограничен). Каждый раз порождая новое число просто дописывают цифру справа уже написанному ряду цифр, а этот ряд цифр уже является числом. Понятие числа можно определить другим способом.

<< … >>

Число – это любая цифра либо другое число, к которому справа дописана любая цифра. Это и составляет основу правил грамматики G и G’ и отраженно в правилах

G

<чс> → <цифра>| <чс> <цифра>

G’

T→F| TF

Другие правила в этих грамматиках позволяют добавить к числу знак и дают определение цифре (3я строка правил)

<<цифра>>

Рекурсия всегда присутствует в грамматиках любых языков программирования, в них содержится множество правил, построенных с помощью рекурсий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]