Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
57
Добавлен:
16.04.2015
Размер:
790.89 Кб
Скачать

Пример 1.5. В предыдущем примере по простой sdts T = ({E},{a, +, *}, {a, +, *}, R, E), где

R = { (1) E +EE, EE+ ;

(2)E *EE, EE* ;

(3)E a, a},

был построен эквивалентный npdt

P = ({q}, {a, +, *}, {E, a, +, *, a, +, *}, {a, +, *},, q, E, ),

где 1) (q, , E) = {(q, +EE+, ), (q, *EE*, ), (q, aa, )},

2)(q, b, b) = {( q, , )} для всех b {a, +, *},

3)(q, , с) = {( q, , с)} для всех с {a, +, *}.

Ret 84

81

 

Пример 1.5.

Теперь по этому недетерминированному преобразователю P мы построим эквивалентную простую схему синтаксически управляемой трансляции, воспользовавшись алгоритмом, описанным в лемме 1.2.

82

Пример 1.5.

Положим T = ({S, [qEq], [qaq], [q + q], [q *q], [qaq], [q +q], [q *q]}, {a, +, *},{a, +, *}, R, S),

R= {(1) S [qEq], [qEq];

(2)[qEq] [q + q] [qEq] [qEq] [q +q],

 

[q + q] [qEq] [qEq] [q +q];

(3)

[qEq] [q *q] [qEq] [qEq] [q *q],

 

[q *q] [qEq] [qEq] [q *q];

(4)

[qEq] [qaq] [qaq], [qaq] [qaq];

(5)

[qaq] a, ;

(8) [qaq] , a;

(6)[q +q] +, ; (9) [q +q] , +;

(7)[q * q] *, ; (10) [q * q] , *}.

83

Пример 1.5.

Эта схема мало похожа на исходную, в которой было всего три правила. Однако её можно эквивалентными преобразованиями привести к исходной.

84

Пример 1.5.

Во-первых, правые части правил 5–10 можно подставить в правые части правил 2–4. В результате получим

R= { (1) S [qEq], [qEq];

(2) [qEq] + [qEq] [qEq], [qEq] [qEq] +; (3) [qEq] * [qEq] [qEq], [qEq] [qEq] *; (4) [qEq] a, a}.

Легко видеть, что из (S, S) выводится в точности то же, что и из ([qEq], [qEq]). Остается заменить в правилах 2–4 слева и справа [qEq] на простое E и отбросить бесполезное правило 1, чтобы получить исходную схему.

85

(P) e(P)

Лемма 1.3. Пусть

P = (Q, , , , , q0, Z0, F) —

недетерминированный магазинный преобразователь и = (P).

Существует недетерминированный мага-

зинный преобразователь P, такой, что

e(P) = .

Ret 105

86

(P) e(P)

Доказательство. Построим pdt P, исходя из того соображения, что он будет моделировать pdt P до тех пор, пока тот не примет свою входную цепочку, а затем pdt Pбудет опустошать свой магазин, совершая - движения и не выдавая ничего на выход.

Таким образом, npdt Pбудет принимать то же самое множество входных цепочек при пустом магазине, какое pdt P принимает при конечных состояниях, и выдавать на выход такие же выходные цепочки.

87

(P) e(P)

Итак, положим (ср. с теор. 5.1 - II)

P= (Q, , , , , q0, Z0, ),

где входной и выходной алфавиты — такие же, как у npdt P, а множество конечных состояний, которое в этом случае несущественно, пусто;

Q= Q {q0, qe}, q0, qe Q;

= {Z0}, Z0.

88

(P) e(P)

Отображение определяется следующим образом:

1. (q0, , Z0) = {(q0, Z0Z0, )}

воспроизводит начальную конфигурацию недетер- минированного магазинного преобразователя P.

2.(q, a, Z) содержит все элементы (q, a, Z) для q Q, a { }, Z , — реализуется собственно моделирование движений pdt P.

3.(q, , Z) содержит (qe, , ), если q F, Z , — происходит переход в состояние-“ловушку”.

4.(qe, , Z) = {(qe, , )} для всех Z

производится опустошение магазина.

89

(P) e(P)

I. Докажем сначала, что

если (x, y) (P), то (x, y) e(P). Пусть (x, y) (P), т. е.

(q0, x, Z0, ) (q, , , y), где q F.

Посмотрим, как будет действовать npdt Pна таком же входе.

Согласно п.1 построения имеем

(q0, x, Z0, ) (q0, x, Z0 Z0, ).

90

Соседние файлы в папке lectures