158
вол магазина и маркер его “дна”, на выходе пусто. Читающая головка сканирует
начало входной ленты. На каждом такте работы алгоритм адресуется к своей
управляющей таблице с двумя входами: верхним символом магазина и текущей
аванцепочкой. Управляющий элемент диктует одно движение из двух, которое
и выполняется. Этот цикл повторяется до тех пор, пока управляющий элемент
не просигнализирует о приеме входной цепочки, и в этом случае на выходе об-
разуется ее левосторонний анализ, или управляющий элемент диагностирует
ошибку на входе, и тогда алгоритм останавливается, не принимая входной це-
почки.
На рис. 2.1 входная цепочка
представлена как wx, причем w обозначает
просмотренную, а
x — не просмотренную ее часть, которая начинается с аван-
цепочки
u и заканчивается цепочкой y. Магазинная цепочка представлена в ви-
де
Xα$, где X обозначает верхний символ магазина, α — символы магазина,
располагающиеся ниже его вершины, а $ — маркер “дна”. Выходная цепочка
представлена как
πi, где π обозначает часть цепочки, образованную перед по-
следним движением алгоритма, а
i — последнюю произведенную запись на вы-
ходную ленту.
2.3.2. Формальное определение.
Сначала дадим несколько определений.
Определение 2.8. k-Предсказывающим алгоритмом анализа называется фор-
мальная
система A =(Σ, Γ∪{$}, ∆, M, X
0
, $), где Σ — входной алфавит,
Γ∪{$} — магазинный алфавит, $ ∉Γ— маркер “дна” магазина, ∆ — выходной
алфавит, X
0
∈Γ— начальный символ магазина, M: (Γ∪{$}) ×Σ
*
k
→ {(β, i), pop,
accept, error} —
управляющая таблица, β∈Γ
*
, i∈∆ — номер правила грамматики.
Работу
k-предсказывающего алгоритма анализа проще всего описать в тер-
минах отношения
на множестве конфигураций.
Определение 2.9. Под конфигурацией k-предсказывающего алгоритма анали-
за будем подразумевать тройку (
x, α, π), где x ∈Σ
*
— непросмотренная часть
входной цепочки, причем
u =
FIRST
k
(x) ∈Σ
*
k
— аванцепочка, α∈Γ
*
{$} — мага-
зинная цепочка,
π∈∆
*
— выходная цепочка.
Начальная конфигурация есть (w, X
0
$, ε), где w ∈Σ
*
— вся входная цепочка.
Пусть (
x, Xα, π) — текущая конфигурация, где x ∈Σ
*
— непросмотренная
часть входной цепочки,
X ∈Γ∪{ε} — верхний символ магазина или пустая це-
почка,
α∈Γ
*
{$} — остальная часть магазинной цепочки.
Определим следующую конфигурацию в зависимости от значения элемента
управляющей таблицы
M(X, u).
1. Если
M(X, u)=(β, i), то (x, Xα, π) (x, βα, πi).
2. Если
M(X, u) = pop и в этом случае всегда X = a, a ∈Σ, x = ax
’,
x
’
∈Σ
*
, то
(
x, Xα, π)=(ax
’
, aα, π) (x
’
, α, π).