Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TAiFYA(X-file).doc
Скачиваний:
18
Добавлен:
24.04.2019
Размер:
3.09 Mб
Скачать

23. Построение мп-преобразователя, реализующего левый разбор

МП-преобразование:

P = <Q,A,Г,В,б,q0,z0,F>

Б: Q x (A ∪ { λ}) x Г -> 2QxГ*xB* - множество всех подмножеств.

Спуск по таблице вниз

Раз S ∈ t1n, B = abaab

S -> AS ? нет

S -> AA ? есть. Используем первое правило, которое нашли.

S - > AA

t11 t24

Эти соответствия ищем просматривая вертикаль вверх, диагональ вниз и до первого нахождения таких tij, tj+1,k. Процесс повторяем параллельно для двух веток.

Как могли получить t24?

t24 -> t21 t24 -> t33 t24 -> t22 t24 -> t42 t24 -> t23 t24 -> t51

Имея дерево вывода, можно построить разбор.

A -> …

t33 -> t31 A

t33 -> t42 S,A

t33 -> t32

t33 -> t51

Ищем правила A -> AS №5 правило, A -> AA

t42 S -> …

t42 -> t41

t42 -> t51

S -> AS, ищем №2 правило

t41 A -> a? есть

t51 A -> b? есть

Трудоемкость построения дерева по таблице

Тдер(n) = O(n2)

Чтобы найти правило, нужно проделать O(n) операций.

Каждая вершина имеет степень, не превосходящую 3.

Листьев дерева n.

deg (лист) = 1, их n

deg (корень) = 2, их 1

Остальные вершины deg = 3, их x-n-1

x – число всех вершин деревьев вывода.

Сложим степени всех вершин = <2 x число ребер>

3(x–n-1) + n + 2 = 2m;

2m = 2(x-1), т.к. дерево.

x = 2n + 1

Число правил в дереве = x-n = n+1, отсюда трудоемкость построения разбора O(n2)

Трудоемкость алгоритма O(n3)

Если грамматика с однозначным выводом, то O(n2)

Если язык детерминированный O(n)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]