dpdt P: e(P) = {(x$, y) (x, y) (T)}
Теорема 2.11. Пусть T = (N, , , R, S) —
простая семантически однозначная схема синтаксически управляемой трансляции с входной грамматикой Gi класса LL(k).
Существует детерминированный магазинный преобразователь P, такой, что
e (P) = {(x$, y) (x, y) (T)}.
dpdt P: e(P) = {(x$, y) (x, y) (T)}
Доказательство. Заметим, что входная цепочка трансляции, реализуемой магазинным преобразователем, всегда имеет маркер конца, тогда как схема порождает трансляцию с входами без такого маркера. Маркер необходим, чтобы гарантировать детерминизм магазинного преобразователя.
dpdt P: e(P) = {(x$, y) (x, y) (T)}
Доказательство основано на построении dpdt, моделирующего движения k-пред- сказывающего алгоритма трансляции, адекватного данной схеме, который согласно теореме 2.10 существует.
Итак, пусть построен k-предсказы- вающий алгоритм трансляции
= ( , {$}, , M, T0, $).
dpdt P: e(P) = {(x$, y) (x, y) (T)}
Положим dpdt
P = (Q, {$}, {$}, , , q0, $, ),
где , и — те же, что и в ;
Q = {q0} {[u] u *k} {[v$] v *k – 1}.
dpdt P: e(P) = {(x$, y) (x, y) (T)}
1.(q0, , $) = ([ ], T0$, ) — моделирует начальную конфигурацию .
2.([v], a, T) = ([va], T, ), v *k– 1, a ,
T — реализует накопление полной аванцепочки.
3. ([v], $, T) = ([v$], T, ), v *k– 1,
T — совершает накопление короткой аванцепочки.
dpdt P: e(P) = {(x$, y) (x, y) (T)}
4. ([u], |
, |
T) = ([u], , ), u |
k, T |
, |
|
|
|
M(T, u) = |
— моделирование движения |
типа 1 при полной аванцепочке.
5. ([v$], , T) = ([v$], , ), v *k– 1, T
,
M(T, v) = — моделирование движения типа 1 при короткой аванцепочке.
dpdt P: e(P) = {(x$, y) (x, y) (T)}
6.([av], , a) = ([v], , ), a , v k– 1 —
моделирование pop-движения при полной аванцепочке.
7.([av$], , a) = ([v$], , ), a , v *k– 2
— моделирование pop-движения при короткой аванцепочке.
dpdt P: e(P) = {(x$, y) (x, y) (T)}
8.([u], , b’) = ([u], , b), b , u k —
моделирование pass-движения при полной аванцепочке.
9.([v$], , b’) = ([v$], , b), b , v *k– 1
— моделирование pass-движения при короткой аванцепочке.
10. ([$], , $) = ([ ], , ) — моделирование перехода в принимающую конфигурацию.
dpdt P: e(P) = {(x$, y) (x, y) (T)}
То, что построенный dpdt P действительно точно моделирует k-предсказы- вающий алгоритм трансляции , нетрудно доказать индукцией по числу движений типа 1 того и другого устройств.
2.11.Непростые LL(k)-трансляции и магазинные процессоры
Пусть T = (N, , , R, S) — непростая семантически однозначная sdts с входной грамматикой Gi класса LL(k). Для реализации такой трансляции можно ввести ещё одну модификацию k- предсказывающего алгоритма анализа,
называемую магазинным процессором.