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

 

(y, $, )

 

 

 

Если S lm x , то (xy, T0$, )

 

I. Докажем сначала,

что если S

 

 

 

 

lm

x — закрытая, а — открытая часть

сентенциальной формы x , то для цепочки y *, такой, что

x , где данной любой

FIRST

G

(y) FIRST

G

( ),

 

 

k

k

 

анализатор совершает переход

0

(y, $, ),

где

h( )

(xy,T $, )

 

Попросту

говоря, если в

 

.

заменить

LL(k)-таблицы на нетерминалы, с которыми они ассоциированы, то получится .

151

 

 

x , то (xy, T0$, )

(y, $, )

Если S

 

lm

Индукция по l = .

База. Пусть l = 1, т. е. = i, где i — номер некоторого правила грамматики.

(i )

 

 

 

 

Пусть S x и y *, такая, что

lm

 

 

 

 

FIRST

G

(y) FIRST

G

( ).

 

 

k

k

 

На единственном шаге этого вывода применяется правило вида S x , имеющее номер i. Согласно п. 3.1 алгоритма 2.3

 

M (T

, u)

 

0

 

 

для всех

 

 

G

 

k

 

u FIRST

 

Напомним, что T0

(x , i)

(x )

{ }.

k

 

= TS,{ } .

152

Если S

lm

x , то (xy, T0$, )

(y, $, )

Посмотрим, как будет действовать LL(k)- анализатор, начиная с конфигурации

(xy, T0$, ).

Очевидно, что аванцепочка

u FIRST

G

(xy) FIRST

G

(x )

 

 

 

 

k

 

 

 

k

 

FIRST

G

(x )

 

{ }

 

 

 

 

k

 

 

k

 

 

 

 

 

и, следовательно,

M (T

, u) (x ,

 

0

 

Поэтому

(xy,T $,

(xy, x $,i)

0

 

 

 

причём

последний

 

переход

посредством pop-движений. База

i).

( y, $,i),

происходит доказана.

153

Если S

lm

x , то (xy, T0$, )

(y, $, )

Индукционная гипотеза. Предположим,

что утверждение выполняется для всех l n

(n 1).

Индукционный переход. Докажем утверж-

дение для l = n + 1.

Пусть имеется

левосторонний вывод

длиной n + 1:

 

'

(i )

S x′ ′ = xA x′ = x .

lm

lm

Здесь = ′i, ′ =

A , = z , где z VT*,

x = xz, A VN, , V *. На последнем шаге вывода применялось i-е правило A

из множества P.

154

Если S

lm

x , то (xy, T0$, ) (y, $, )

M

Согласно п. 3.1 алгоритма

(TA, L ,u) ( ,i)

для всех

L

u FIRST

G

(

 

L,

где

 

 

 

 

 

 

k

 

 

k

 

 

2.3

FIRST

G

(

 

 

k

 

(I.1)

Посмотрим, как будет действовать анализатор из своей начальной конфигурации

(xy, T0$, ) = (xzy, T0$, ) = (xy′, T0$, ),

где y′ = zy.

'

Применим к имеющемуся выводу S x′ ′ индукционную гипотезу с цепочкой ylm= zy, поскольку

155

Если S

lm

x , то (xy, T0$, )

(y, $, )

G

 

 

 

 

 

G

 

 

 

 

 

 

 

 

G

(z )

FIRSTk ( y ) FIRSTk

(zy) FIRSTk

G

 

 

 

 

 

G

 

 

 

 

 

 

 

G

 

 

FIRSTk

 

 

( ) FIRSTk

( A )

FIRSTk

 

( ).

Как следствие получаем

 

 

 

 

 

 

 

 

(xy, T0$, ) = (xy′, T0$, )

 

 

 

 

 

 

(y′,

 

 

 

 

 

 

 

$, ′).

 

 

 

(I.2)

 

 

 

 

 

$, ′) = (zy, TA, L

 

 

 

 

 

Вычислим аванцепочку

 

 

 

 

 

 

 

 

u FIRST

G

(zy) FIRST

G

(z )

 

 

 

 

 

 

 

 

 

 

 

 

 

FIRST

k

( ) FIRST

k

( )

 

FIRST

 

 

( )

G

G

 

G

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

k

 

 

 

 

 

k

 

k

 

 

FIRST

G

( )

 

L,

 

k

k

 

 

а для таких аванцепочек,

как показывает (I.1), M (TA,L , u) ( , i).

156

Если S

lm

x , то (xy, T0$, ) (y, $, )

Поэтому следующее движение типа 1 и завершающие pop-движения продолжают процесс (I.2) следующим образом:

(zy, TA, L $, ′)

(zy, $, ′i) =

= (zy, z $, ′i)

(y, $, ).

Утверждение I доказано.

157

Если (xy, T0$, ) (y, $, ) , то S

lm

x

II. Докажем теперь, что если LL(k)-анализатор

совершает переход вида (xy, T0$, )

(y, $, )

для любой цепочки y *, такой, что

 

 

FIRST

G

( y) FIRST

G

( ),

 

 

 

 

 

 

 

k

 

 

k

 

 

 

h( )

 

 

 

 

 

 

 

где

то S

x ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

lm

— открытая часть

где

x — закрытая, а

данной сентенциальной формы.

158

Если (xy, T0$, )

(y, $, ) , то S

lm

x

Индукция по l = .

База. Пусть l = 1, т. е. = i, и

(xy, T0$, )

(y, $, i).

Анализатор пишет на выходную ленту номер правила только, если на вершине магазина LL(k)-таблица. Следовательно, в рассматриваемой исходной конфигурации это

— первое движение, и только оно пишет номер i на выход. Поэтому фактически имеем

(xy, T0$, ) (xy,

причём все остальные движения.

$, i)

(y,

 

$, i),

 

движения — это pop-

159

Если (xy, T0$, )

(y, $, ) , то S

lm

x

Очевидно, что завершающая конфигурация достижима только посредством одних только pop-движений, если = x .

Первое движение обеспечивалось элементом таблицы M(T0 , u) = ( , i), где

u FIRST

G

(xy ,

а это подразумевает суще-

 

k

 

ствование правила S P, в котором= x , под номером i.

Тогда S

(i ) lm

x , и база доказана.

160

Соседние файлы в папке lectures