ВУЗ:
Составители:
29
Определение 5.5. МП-автомат с магазинной функцией
)()}){((:
**
NQPNTQF ×→×∪×
ε
называется расширенным МП-автоматом,
т.е. автоматом, который может заменять цепочку символов конечной длины в
верхушке стека на другую цепочку символов конечной длины.
Существуют КС-языки, МП-автоматы и расширенные МП-автоматы, оп-
ределяющие один и тот же язык.
Алгоритм 5.2. Построение МП-автомата по КС-грамматике
Построим МП-автомат, выполняющий левосторонний разбор. Данный
автомат обладает только одним состоянием и принимает входную строку опус-
тошением магазина. Стек используется для размещения текущей сентенции,
первоначально это начальный символ грамматики. Очередная сентенция полу-
чается заменой верхнего нетерминала стека.
Вход: КС-грамматика ),,,( SPVVG
N
T
= .
Выход: МП-автомат ),,,,,,(
00
ZnqFNTQM = такой, что L(M) = L(G).
Шаг 1. Положить Q = {q}, q
0
= q, Z = ∅, N = V
T
∪ V
N
, T = V
T
, N
0
= S.
Шаг 2. Для каждого правила вида (А→
β
)
P
∈
, где ,
*
V∈
β
сформировать
магазинную функцию вида ),(),,(
β
ε
q
A
qF
=
. Эти функции предписывают
замещать нетерминал в вершине стека по правилу грамматики.
Шаг 3. Для каждого t
T
V∈
сформировать магазинную функцию вида
),(),,(
ε
q
t
t
qF = , которая выталкивает из стека символ, совпадающий с вход-
ным, и перемещает читающую головку. Эти функции обеспечивают опустоше-
ние стека.
Пример 5.1. Дана КС-грамматика:
G({+, (, ), a}, {S, A}, {S→S+A | A, A→(S) | a}, {S}). Последовательность
построения МП-автомата будет иметь вид.
1) Q = {q}, q
0
= q, T = {+, (, ), a }, N = {+, (, ), a, S, A}, N
0
= S, Z = ∅.
2) F(q,
ε
, S) = (q, S+A), F(q,
ε
, S) = (q, A), F(q,
ε
, A) = (q, (S));
F(q,
ε
, A) = (q, a).
3) F(q, t, t) = (q,
ε
) для каждого t ∈{+, (, ), a}.
Распознавание строки (а) построенным МП-автоматом представлено в
таблице 5.1. Полученный МП-автомат является недетерминированным.
Определение 5.5. МП-автомат с магазинной функцией F : (Q × (T ∪ {ε }) × N * ) → P (Q × N * ) называется расширенным МП-автоматом, т.е. автоматом, который может заменять цепочку символов конечной длины в верхушке стека на другую цепочку символов конечной длины. Существуют КС-языки, МП-автоматы и расширенные МП-автоматы, оп- ределяющие один и тот же язык. Алгоритм 5.2. Построение МП-автомата по КС-грамматике Построим МП-автомат, выполняющий левосторонний разбор. Данный автомат обладает только одним состоянием и принимает входную строку опус- тошением магазина. Стек используется для размещения текущей сентенции, первоначально это начальный символ грамматики. Очередная сентенция полу- чается заменой верхнего нетерминала стека. Вход: КС-грамматика G = (VT , V N , P, S ) . Выход: МП-автомат M = (Q, T , N , F , q0 , n0 , Z ) такой, что L(M) = L(G). Шаг 1. Положить Q = {q}, q0 = q, Z = ∅, N = VT ∪ VN, T = VT, N0 = S. Шаг 2. Для каждого правила вида (А→ β ) ∈ P , где β ∈ V * , сформировать магазинную функцию вида F (q, ε , A) = (q, β ) . Эти функции предписывают замещать нетерминал в вершине стека по правилу грамматики. Шаг 3. Для каждого t ∈ VT сформировать магазинную функцию вида F (q, t , t ) = (q, ε ) , которая выталкивает из стека символ, совпадающий с вход- ным, и перемещает читающую головку. Эти функции обеспечивают опустоше- ние стека. Пример 5.1. Дана КС-грамматика: G({+, (, ), a}, {S, A}, {S→S+A | A, A→(S) | a}, {S}). Последовательность построения МП-автомата будет иметь вид. 1) Q = {q}, q0 = q, T = {+, (, ), a }, N = {+, (, ), a, S, A}, N0 = S, Z = ∅. 2) F(q, ε , S) = (q, S+A), F(q, ε , S) = (q, A), F(q, ε , A) = (q, (S)); F(q, ε , A) = (q, a). 3) F(q, t, t) = (q, ε ) для каждого t ∈{+, (, ), a}. Распознавание строки (а) построенным МП-автоматом представлено в таблице 5.1. Полученный МП-автомат является недетерминированным. 29
Страницы
- « первая
- ‹ предыдущая
- …
- 27
- 28
- 29
- 30
- 31
- …
- следующая ›
- последняя »