Формальные языки


Выделение общих частей - часть 2


Чтобы проверить второе условие, найдем функции ПЕРВ и СЛЕД для аннулирующих правил.
    СЛЕД(<D>) = СЛЕД(<I>) = ПЕРВ(<B>) И

    ПЕРВ(ca) = {c},
    ПЕРВ(<D>) = ПЕРВ(<I>) = {b},
    СЛЕД(<E>) = СЛЕД(<B>) = СЛЕД(<D>) = {c},
    ПЕРВ(<E>) = ПЕРВ(<A>) = {d,f}.

Полученные значения показывают, что второе условие выполняется, и что построенная грамматика является грамматикой типа LL(1).
Преобразование для грамматики Г 3. 6  закончилось удачно, но так бывает не всегда. Часто исключение правил, нарушающих первое условие, приводит к появлению аннулирующих правил, для которых нарушается второе условие.
Третий вид преобразования предполагает исключение аннулирующих правил и построение неукорачивающей грамматики. Такие преобразования могут оказаться полезными, если нарушается второе условие принадлежности грамматики к классу LL(1).
 

 

  • Пред.Страница 

    След.Страница   Раздел   Содержание




- Начало -  - Назад -  - Вперед -