ВУЗ:
Составители:
30
Таблица 5.1 – Распознавание МП-автоматом строки (а)
Номер
конфигурации
Текущее
состояние
Входная строка Содержимое магазина
1
q
(a)
S
2
q
(a)
A
3
q
(a) (S)
4
q
a) S)
5
q
a) A)
6
q
a) a)
7
q
) )
8
q
ε
ε
Алгоритм 5.3. Построение расширенного МП-автомата
по КС-грамматике
Построим МП-автомат, выполняющий правосторонний разбор. Данный
автомат имеет единственное текущее состояние и одно заключительное состоя-
ние, в котором стек пуст. Стек содержит левую часть текущей сентенции. Пер-
воначально в стек помещается специальный магазинный символ, маркер пусто-
го стека #. На каждом шаге автомат по правилу грамматики замещает нетерми-
налом строку верхних символов стека или дописывает в вершину входной сим-
вол.
Вход: КС-грамматика ),,,( SPVVG
N
T
= .
Выход: расширенный МП-автомат
),,,,,,(
00
ZNqFNTQM
=
такой, что
L(M) = L(G).
Шаг 1. Положить Q = {q, r}, q
0
= q, Z = {r}, N = V
T
∪ V
N
∪ {#}, T = V
T
,
N
0
= #.
Шаг 2. Для каждого правила вида
P
A
∈
→ )(
β
, где
*
V∈
β
, сформировать
магазинную функцию вида ),(),,(
A
qqF
=
β
ε
, предписывающую заменять пра-
вую часть правила в вершине стека нетерминалом из левой части, независимо
от текущего символа входной строки.
Шаг 3. Для каждого терминала
T
t
∈
сформировать магазинную функцию
вида ),(),,(
t
q
t
qF =
ε
, которая помещает символ входной строки в вершину
стека, если там нет правой части правила, и перемещает читающую головку.
Шаг 4. Предусмотреть магазинную функцию для перевода автомата в за-
ключительное состояние ),()#,,(
ε
ε
r
S
qF
=
.
Пример 5.2. Для грамматики из примера 5.1 построить расширенный
МП-автомат. Последовательность построения МП-автомата будет иметь вид.
1)
Q = {q, r}, q
0
= q, T = {+, (, ), a}, N = {+, (, ), a, S, A}, N
0
= #, Z = r.
Таблица 5.1 – Распознавание МП-автоматом строки (а)
Номер Текущее
Входная строка Содержимое магазина
конфигурации состояние
1 q (a) S
2 q (a) A
3 q (a) (S)
4 q a) S)
5 q a) A)
6 q a) a)
7 q ) )
8 q ε ε
Алгоритм 5.3. Построение расширенного МП-автомата
по КС-грамматике
Построим МП-автомат, выполняющий правосторонний разбор. Данный
автомат имеет единственное текущее состояние и одно заключительное состоя-
ние, в котором стек пуст. Стек содержит левую часть текущей сентенции. Пер-
воначально в стек помещается специальный магазинный символ, маркер пусто-
го стека #. На каждом шаге автомат по правилу грамматики замещает нетерми-
налом строку верхних символов стека или дописывает в вершину входной сим-
вол.
Вход: КС-грамматика G = (VT , V N , P, S ) .
Выход: расширенный МП-автомат M = (Q, T , N , F , q0 , N 0 , Z ) такой, что
L(M) = L(G).
Шаг 1. Положить Q = {q, r}, q0 = q, Z = {r}, N = VT ∪ VN ∪ {#}, T = VT,
N0 = #.
Шаг 2. Для каждого правила вида ( A → β ) ∈ P , где β ∈ V * , сформировать
магазинную функцию вида F (q, ε , β ) = (q, A) , предписывающую заменять пра-
вую часть правила в вершине стека нетерминалом из левой части, независимо
от текущего символа входной строки.
Шаг 3. Для каждого терминала t ∈ T сформировать магазинную функцию
вида F (q, t , ε ) = (q, t ) , которая помещает символ входной строки в вершину
стека, если там нет правой части правила, и перемещает читающую головку.
Шаг 4. Предусмотреть магазинную функцию для перевода автомата в за-
ключительное состояние F (q, ε , # S ) = (r , ε ) .
Пример 5.2. Для грамматики из примера 5.1 построить расширенный
МП-автомат. Последовательность построения МП-автомата будет иметь вид.
1) Q = {q, r}, q0 = q, T = {+, (, ), a}, N = {+, (, ), a, S, A}, N0 = #, Z = r.
30
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »
