Теория алгоритмов и формальных языков. Мелихов А.Н - 48 стр.

UptoLike

«быть», «равно по определению», «это есть»; разделитель |, означающий
«или»; < > - скобки, в которых указываются конструкции языка.
Пример записи в НФБ конструкции «идентификатор» Алгола-60:
<идентификатор> ::= <буква> | <буква> <цифра> | <идентификатор> <буква>
| <идентификатор> <цифра>
<буква> ::= а |в| … | z
<цифра> ::= 0 |1| … |9.
Вместо
названий конструкций в скобках иногда пишут обозначающие их
большие латинские буквы, а вместо связки ::= - знак . Тогда, если ввести
обозначения: <идентификатор> = I; <цифра> = Ц; <буква> = Б, а вместо
разделителя | записать соответствующее
9|...|0
|...|
|||
Ц
ZаБ
IЦIББЦБI
или
IБI
IЦI
БЦI
БI
ZБ
аБ
M
9
0
Ц
Ц
M .
Особенностью некоторых правил в представлении их в виде НФБ является
то, что для описания некоторых конструкций используются сами
описываемые конструкции. Говорят, что в этом случае имеет место рекурсия.
Теперь, когда мы имеем язык для формального описания синтаксиса,
определим понятие порождающей грамматики.
Порождающей грамматикой G называется четверка
},,,{ RSVVG
AT
=
,
где V
Т
- конечный терминальный или основной алфавит (словарь), V
А
-
конечный вспомогательный или нетерминальный алфавит (словарь), S -
аксиома,
A
VS , R - конечное множество правил вывода вида
η
ξ
, причем
*}{,
TA
VV U
η
ξ
. Здесь, как и ранее,
*
A
V ,
*
T
V - множества слов в алфавитах V
A
, V
Т
соответственно. Предполагается, что из S выводима любая синтаксически
правильная цепочка языка. Для Алгола-60 аксиомой является символ S в
правиле S ::= <программа>.