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

Пример 1-предсказывающего алгоритма трансляции

Таблица 2.8 (прод.)

Маг.

 

А в а н ц е п о ч к и

 

 

 

 

 

 

 

 

сим.

a

+

*

(

)

 

 

 

 

 

 

 

 

a

pop

 

 

 

 

 

 

 

 

 

 

 

 

+

 

pop

 

 

 

 

 

 

 

 

 

 

 

*

 

 

pop

 

 

 

 

 

 

 

 

 

 

(

 

 

 

pop

 

 

 

 

 

 

 

 

 

)

 

 

 

 

pop

 

 

 

 

 

 

 

 

261

Пример 1-предсказывающего алгоритма трансляции

Таблица 2.8 (прод.1)

Маг.

 

 

 

 

А в а н ц е п о ч к и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сим.

a

 

 

+

 

*

(

 

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a′

 

p

 

 

a

s

 

s

 

 

 

 

 

+′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

*′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$

 

 

 

 

 

 

 

 

 

 

accept

 

 

 

 

 

 

 

 

 

 

 

 

*) Пустые клетки соответствуют значениям error.

262

Пример 1-предсказывающего алгоритма трансляции

Посмотрим, как будет действовать построенный нами 1-предсказывающий алгоритм трансляции на входной цепочке (a + a).

1.((a + a), E$, )

2.((a + a ), TE$, )

3.((a + a ), FTE$, )

4.((a + a ), (E) T E$, )

5.(a + a ), E) TE$, )

263

Пример 1-предсказывающего алгоритма трансляции

6.(a + a ), TE) TE$, )

7.(a + a ), F TE) TE$, )

8.(a + a ), aaTE) TE$, )

9.(+ a ), aTE)TE$, )

10.(+ a), TE) TE$, a)

11.(+ a), E) TE$, a)

12.(+ a), +T+E) TE$, a)

13.(a), T+E) TE$, a)

14.(a), FT+E)TE$, a)

15.(a), aaT+E) TE$, a)

264

Пример 1-предсказывающего алгоритма трансляции

16.( ), aT+E) TE$, a)

17.( ), T+E) TE$, a a )

18.( ), +E) TE$, a a )

19.( ), E) TE$, a a +)

20.( ), )TE$, a a +)

21.( , TE$, a a +)

22.( , E$, a a +)

23.( , $, a a +) ― accept.

Итак, ((a + a)) = a a +.

Не трудно проверить, что

(E, E) T* ((a + a), a a +).

265

(T)= ( )

Теорема 2.10. Пусть T = (N, , , R, S)

простая семантически однозначная схема синтаксически управляемой трансляции с входной грамматикой Gi класса LL(k), и

= ( , {$}, , M, T0, $)

— k-предсказывающий алгоритм трансляции, построенный посредством алгоритма 2.8, применённого к данной схеме трансляции T.

Тогда (T) = ().

Ret 273

266

(T)= ( )

Доказательство. Справедливость данного утверждения следует из того факта, что LL(k)-анализатор, построенный по входной грамматике данной схемы, является правильным.

267

(T)= ( )

Модификация, превращающая LL(k)- анализатор в LL(k)-транслятор, фактически состоит в том, что когда анализатор, моделируя шаг левостороннего вывода, замещает некоторую LL(k)-таблицу TA, L на вершине магазина образом правой части

правила вида x0TA1, L1x1 TA2, L2TAm, Lm xm, транслятор “подмешивает” к этой

магазинной цепочке образы выходных символов из семантической цепочки соответствующего правила схемы.

268

(T)= ( )

Таким образом, что полученная смесь

x0 y0TA1, L1x1 y1TA2,L2TAm, Lm xm ymв магазине обеспечивает точное воспроизведение

движений анализатора и синхронизированную с ними генерацию соответствующей цепочки на выходной ленте.

269

(T)= ( )

Действительно, выполнив pop-движения и продвинувшись по фрагменту xi входной цепочки, который является также и фрагментом правила входной грамматики A x0 A1x1A2 ... Am xm, транслятор тут же выдает на выход соответствующий фрагмент yi выходной цепочки, который также является и фрагментом семантической цепочки соответствующего правила схемы

A x0 A1x1A2 Am xm, y0 A1 y1A2 Am ym.

Что и требовалось доказать.

270

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