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

spoPresentation2

.pdf
Скачиваний:
6
Добавлен:
11.05.2015
Размер:
4.74 Mб
Скачать

Построение расширенного МП-автомата

Пример разбора цепочка (i)

( q, (i), # ) 6 ( q, i), #) ) 8 ( q, ), #(i ) 4

( q, ), #(F ) 2 ( q, ), #(E ) 7 ( q, O, #(E) ) 3 ( q, O, #F ) 2 ( q, O, #E ) 9 ( r, O )

Строка принята, т.к. автомат в заключительном состоянии и магазин пуст

В этот раз не возникало никаких неопределенностей

271

Построение автомата по НФ Грейбах

Алгоритм строит недетерминированный МП-автомат

В стеке размещается правая часть текущей сентенциальной формы, в начале это аксиома

Вершина стека слева

Автомат обладает только одним состоянием и принимает входную строку опустошением стека

272

Построение автомата по НФ Грейбах

Дано: КС грамматика G(T,N,P,S) в НФ Грейбах

Получить: эквивалентный ей МПА M =

(Q,A,Z,G, q0, z0, F), задающий тот же язык L(G)

= L(М)

Дополнительные условия:

Вершина стека находится слева

1. Q = { q }; q0 = q; F = ; Z = N, A = T, z0 = S

2. G ( q, b, X ) = { (q,D) | XobD P, b T, X N,

DN* } Эти функции позволяют замещать

нетерминал на вершине стека на цепочку

273

Построение автомата по НФ Грейбах

Пример. G = ( { +, (, ), i }, { E, F, G }, P, E)

P = { E o (EFGE | iGE | (EF | i ; F o ) ; G o + }

1. Q = {q}, q0 = q, F = , A = { +, (, ), I }, Z = { E, F,

G }, z0 = E

2.1. G ( q, (, E ) = { ( q, EFGE )1, ( q, EF )2 }

2.2. G ( q, i, E ) = { ( q, GE )3, ( q, O )4 }

2.3. G ( q, ), F ) = { ( q, O )5 }

2.4. G ( q, +, G ) = { ( q, O )6 }

274

Построение автомата по НФ Грейбах

Пример разбора цепочка (i)

( q, (i), E ) ? 1 // 1

( q, i), EFGE ) ? 3 //

( q, ), GEFGE ) ? - //

( q, i), EFGE ) ? 4

( q, ), FGE ) 5

( q, O, GE ) - // R1

( q, (i), E ) ? 2

( q, i), EF ) ? 3 // 3

( q, ), GEF ) ? - // R

275

Построение автомата по НФ Грейбах

Пример разбора цепочка (i)

( q, i), EF ) ? 4

( q, ), F ) 5

( q, O, O )

Цепочка принимается, т.к. стек пуст

276

Распознаватели без возвратов

Распознаватели без возвратов основаны на определении метода, по которому выбирается одна из возможных альтернатив

Остальные альтернативы не учитываются

Время работы обладает линейной, а не экспоненциальной зависимостью от длины входной цепочки

Такие алгоритмы могут потребовать дополнительных ограничений на правила грамматики

277

Распознаватели без возвратов

КС-грамматика G(N,T,P,S) называется S- грамматикой, если выполняются следующие требования:

p P: AoaE, A N, a T, EV*; т.е. правая

часть правил начинается с терминала,

p P: Ao a1E1 | a2E2 | … | anEn , A N, ai T, Ei V*, ai z aj , i,j = 1, 2,..., n; i z j; т.е. правые

части правил, определяющие один и тот же нетерминал, начинаются с разных терминалов

278

Распознаватели без возвратов

Первое свойство S-грамматики обеспечивает выбор очередного правила грамматики, а второе делает этот выбор однозначным, позволяя построить детерминированный распознаватель

Реализовать разбор можно различными методами, например методом рекурсивного спуска:

для каждого нетерминала А грамматики G строится процедура разбора, получающая на вход цепочку символов D и положение считывающей головки i (номер символа)279

Распознаватели без возвратов

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

Если правило найдено, то запоминается его номер, считывающая головка передвигается, и для каждого нетерминала правой части рекурсивно вызывается процедура разбора этого нетерминала

280

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