Символ Х из (N U T) назовем недостижимым в кс-грамматике G=<N,T,P,S>, если Х не появляется ни в одной выводимой цепочке.

Алгоритм 1. устранение недостижимых символов.

Вход: кс-грамматика G=<N,T,P,S>

Выход: кс-грамматика G'=<N',T',P',S>, у которой

  - Л(Ж')=Л(Ж) \\совпадают языки

  - для всех Х существуют такие альфа и бета что S=>*альфаХбета

Метод:

1. V0={S}, i=1

2. Vi={X | в Р есть А::=альфаХбета и А принадлежит Vi-1}

3. if Vi!=Vi-1 then i=i+1 goto2 else N'=Vi объединение N

P' состоит из правил множества Р, содержащих только символы из Vi, G'=<N',T',P',S>

 

Алгоритм 2. Устранение бесполезных символов.

Вход: кс-грамматика G=<N,T,P,S> у которой Л(Ж) не пуст

Выход: кс-грамматика G'=<N',T',P',S>, у которой Л(Ж')=Л(Ж) и N' T' нет бесползеных символов.

 

Метод:

1. Положим N0=пустому, i=1

2. Ni=Ni-1 U {A|A::=альфа принадлежит P, альфа принадлежит (Ni U T)*}

3. if Ni !=Ni-1, then i=i+1 and goto 2, else N=Ni

4. G=<(Ni пересечение N),T,P',S> где P' включается P состоит из правил множества Р, содержащих символы из N'.

5. Применив к Ж1 алгоритм устранения в кс-грамматике недостижимых символов, получим G'=<N',T',P',S>

 

На шагах 1,2,3 алгоритма 2 из Ж устраняются все нетерминалы, которые не могут порождать терминальных цепочек, затем на шаге 5 устраняются все недостижимые символы.

 

Теорема:  грамматика Ж', которую строит алгоритм 2 не содержит бесполезных символов.

Hosted by uCoz