61
ИНФОРМАЦИОННЫЕ СТРУКТУРЫ И ИХ
ПРЕОБРАЗОВАНИЕ
Итак, восходящий разбор связан с отображением входной цепочки в
последовательность обращенных правых выводов.
Пусть G(N,
Σ
, P, S) – грамматика, правила которой занумерованы
1, 2 … р.
Пусть
α
- некоторая цепочка в этой грамматике, где
α ∈
(N
∪Σ
*).
Тогда правый разбор цепочки
α
- обращенная последовательность
правил, примененных при правом выводе.
1)
E:= E+T;
2)
E:=T;
3)
T:=T*F;
4)
T:=F;
5)
F:=(E);
6)
F:=i.
2 3 5 1 4 6 2
E => T => T*F => T*(E) => T*(E+T) => T*(E+F) => T*(E+i) => T*(T+i)
=>
4 6 4 6
=> T*(F+i) => T*(i+i) => F*(i+i) => i*(i+i).
Правый разбор: 6 4 6 4 2 6 4 1 5 3 2.
Набираем в магазине цепочку терминальных символов и смотрим, есть
ли в правых частях правил соответствующие нетерминальные символы:
МП={Q,
Σ
, Г,
∆
,
δ
, q
0
, Z, F};
δ
: Q*
Σ
*Г -> Q
1
*Г
*
*
∆
*
- функция отображения, где * - означает
цепочки.
Будем рассматривать Z как маркер дна магазина,
Σ
{i, (, ), *, +},
∆
(1…6) 1,2…6 – номера правил,
Г {N
∪ Σ
}.
Рассмотрим несколько примеров функции отображения:
1)
δ
(q, a, Z) = (q, Za, e),
2)
δ
(q, e, Z
α
) = (q, A, i),
3)
δ
(q, e, ZE) = (r, e, e).
A:=
α
, q
∈
Q, r
∈
F;
Е – начальный символ грамматики,