Главная страница
Навигация по странице:

  • . Тогда S A0 1A0 2A0 3. . . Am вывод в

  • . . . w1w2. . . w m вывод в

  • По построению L( 0) L()Докажем обратное включение. Пусть S

  • . Следовательно, по гипотезе индукции, определен вывод S

  • Пусть теперь в выводе S w1ww2, где U w1, A w и Vi v i правила

  • Таким образом, мы получили вывод S

  •  вывод . Если вывод S w все еще не вывод , снова рассмотрим последнюю строку вывода, содержа- щую символ из

  • Лемма 11. L( 0) = L()Доказательство. Пусть правило, начинающееся с A, имеет вид A

  • Приписав w слева, а W  справа от каждой строки в выводе, получим wAW wU(i)V(k). . . V(2)V(1)Wв 0. Следовательно, L() L(

  •  множество всех правил с B слева. Пусть 0 грамматика без правила A UBV , но с добавленными правиламиA U WiVдля 1 i m, тогда L() = L(

  • Теория конечных языков и автоматов. Курс лекций П. Н. Иваньшин 2


    Скачать 0.61 Mb.
    НазваниеКурс лекций П. Н. Иваньшин 2
    АнкорТеория конечных языков и автоматов
    Дата29.11.2021
    Размер0.61 Mb.
    Формат файлаpdf
    Имя файлаТеория конечных языков и автоматов.pdf
    ТипКурс лекций
    #285247
    страница3 из 5
    1   2   3   4   5
    , с использованием правил P , то S ?
    ?
    w по правилам P
    0
    . Если n = 1, то S ? w  правило из P
    0
    , так как w = ?.

    Пусть n = k и S ?
    ?
    w
     вывод из k шагов. Пусть S ? A
    1
    A
    2
    A
    3
    . . . A
    m
    
    первый вывод, в котором A
    i
    ? N
    S T
    . Тогда S ? A
    1
    A
    2
    A
    3
    . . . A
    m
    ?
    ?
    w
    

    вывод S ?
    ?
    w
    По лемме 5 существуют выводы A
    i
    ?
    ?
    w i
    в ?, для i = 1, . . . , m, где w = w
    1
    w
    2
    . . . w m
    , причем в каждом выводе меньше k шагов. По индукции,
    если w i
    6= ?
    , существуют выводы A
    i
    ?
    ?
    w i
    в ?
    0
    для i = 1, . . . , m (заметим,
    что если A
    i
     терминал, то A
    i
    = w i
    и A
    i
    ?
    ?
    w i
    содержит 0 шагов).
    Положим A
    0
    i
    = A
    i если w i
    6= ?
    , и A
    0
    i
    = ?
    если w i
    = ?

    . Тогда S ?
    A
    0 1
    A
    0 2
    A
    0 3
    . . . A
    m

     вывод в ?
    0
    и S ? A
    0 1
    A
    0 2
    A
    0 3
    . . . A
    m
    ?
    ?
    w
    1
    A
    0 2
    A
    0 3
    . . . A
    0
    m
    ?
    ?
    w
    1
    w
    2
    A
    0 3
    . . . A
    0
    m
    ?
    ?

    . . . ?
    ?
    w
    1
    w
    2
    . . . w m

     вывод в ?
    0
    Определение 30. Тривиальное правило  правило вида A ? B,
    A, B ? N
    Лемма 8. Если L(?)  язык, порожденный грамматикой ? = (N, T, S, P ),

    не содержит ?, то существует такая грамматика ?
    0

    без ?-правил и тривиальных правил, что L(?
    0
    ) = L(?)
    Доказательство. Предположим сразу, что ? не содержит ?-правил по

    Лемме 7. Построим ?
    0
    удалив все тривиальные правила и для A
    1
    ? A
    2
    ?
    A
    3
    ? . . . ? A
    m
    ?
    ?
    B
    , где A
    i
    ? A
    i+1
     тривиальные правила и B ? w,
    включим A
    1
    ? B

    По построению L(?
    0
    ) ? L(?)

    Докажем обратное включение. Пусть S ?
    ?
    w
     вывод в ?. По индук- ции по количеству применения тривиальных правил в выводе покажем,

    что существует вывод S ?
    ?
    w в ?
    0

    . Очевидно, что при отсутствии три- виальных правил этот вывод может быть осуществлен и в ?
    0
    . Пусть в выводе использовано k тривиальных правил. Допустим, что вывод w 

    левый. Пусть S ?
    ?
    w имеет вид
    S ?
    ?
    V
    1
    A
    1
    V
    2
    ? w
    1
    A
    1
    V
    2
    ? w
    1
    A
    2
    V
    2
    ? w
    1
    A
    3
    V
    2
    ? . . . ? w
    1
    A
    m
    V
    2
    ?
    ?
    w
    1
    w
    0
    V
    2
    ? w
    1
    w
    0
    w
    2
    ,
    где A
    1
    ? A
    2
    ? A
    3
    ? . . . ? A
    m
     последняя последовательность тривиальных правил в выводе и A
    m
    ? w
    0
    . Тогда существуют выводы
    V 1 ?
    ?
    w
    1
    , V
    2
    ?
    ?
    w
    2
    в ? и вывод
    S ?
    ?
    V
    1
    A
    1
    V
    2
    ?
    ?
    w
    1
    A
    1
    V
    2
    ? w
    1
    w
    0
    V
    2
    ?
    ?
    w
    1
    w
    0
    w
    2

    34
    Глава 3. Грамматики содержит меньше тривиальных правил, причем все правила  правила
    P
    S P
    0

    . Следовательно, по гипотезе индукции, определен вывод S ?
    ?
    w в ?
    0
    Лемма 9. Если язык L(?), порожденный грамматикой ? = (N, T, S, P ),

    не содержит ?, то существует такая грамматика ?
    0
    = (N, T, S, P
    0
    )
    , в которой каждое правило имеет вид либо A ? A
    1
    A
    2
    A
    3
    . . . A
    m для n ? 2,
    где A, A
    1
    , A
    2
    , A
    3
    . . . , A
    m
    ? N
    , либо A ? a, где A ? N, a ? T , что L(?) =
    L(?
    0
    )
    Доказательство. Пусть мы уже удалили все ?-правила и тривиальные правила. Следовательно, оставшиеся элементы P имеют вид A ? A
    1
    A
    2
    A
    3
    . . . A
    m
    ,
    где m ? 2 и A
    i
    ? N
    S T
    или A ? a, где A ? N, a ? T . Если A
    1
    , A
    2
    , A
    3
    , . . . , A
    m
    ?
    N
    , то правило имеет нужный нам вид. Предположим обратное, тогда для каждого символа A
    i
    = a i
    , a i
    ? T
    , введем новый нетерминал X
    a i
    . За- меним правило A ? A
    1
    A
    2
    A
    3
    . . . A
    m на A ? A
    0 1
    A
    0 2
    A
    0 3
    . . . A
    0
    m
    , где A
    0
    i
    =
    A
    i
    , если A
    i
    ? N
    , и A
    i
    = X
    a i
    , если A
    i
    ? T
    . Следовательно, строку
    V
    1
    a
    1
    V
    2
    a
    2
    V
    3
    a
    3
    . . . V
    n a
    n
    V
    n+1
    , где V
    i
    ? N
    ?
    , и a i
    ? T
    , заменяем строкой V
    1
    X
    a
    1
    V
    2
    X
    a
    2
    V
    3
    X
    a
    3
    . . . V
    n
    X
    a n
    V
    n+1
    и добавляем правила X
    a i
    ? a i

    для 1 ? i ? n. Пусть ?
    0
    = (N, T, S, P
    0
    )
    

    новая грамматика. Докажем, что L(?) = L(?
    0
    )

    . L(?) ? L(?
    0
    )
    поскольку
    A ? V
    1
    a
    1
    V
    2
    a
    2
    V
    3
    a
    3
    . . . V
    n a
    n
    V
    n+1
    в ? можно заменить на
    A ? V
    1
    X
    a
    1
    V
    2
    X
    a
    2
    V
    3
    X
    a
    3
    . . . V
    n
    X
    a n
    V
    n+1
    ? V
    1
    a
    1
    V
    2
    X
    a
    2
    V
    3
    X
    a
    3
    . . . V
    n
    X
    a n
    V
    n+1
    ? V
    1
    a
    1
    V
    2
    a
    2
    V
    3
    X
    a
    3
    . . . V
    n
    X
    a n
    V
    n+1
    ? V
    1
    a
    1
    V
    2
    a
    2
    V
    3
    a
    3
    . . . V
    n a
    n
    V
    n+1
    в ?
    0

    Пусть теперь в выводе S ?
    ?
    w
    1
    ww
    2

    , где U ?
    ?
    w
    1
    , A ?
    ?
    w и V
    i
    ? v i

     правила ?
    S ?
    ?
    U AU ? U V
    1
    X
    a
    1
    V
    2
    X
    a
    2
    . . . V
    n
    X
    a n
    V
    n+1
    V
    ?
    ?
    w
    1
    v
    1
    a
    1
    v
    2
    a
    2
    v
    3
    a
    3
    . . . v n
    a n
    v n+1
    w
    2
    = w
    1
    ww
    2
    ,
    где
    A ? V
    1
    X
    a
    1
    V
    2
    X
    a
    2
    . . . V
    n
    X
    a n
    V
    n+1

    3.2. Нормальные формы Хомского и Грейбаха
    35

    правило ?
    0
    , но не ?, и вывод выглядит следующим образом:
    S ? U AV
    ?
    ?
    w
    1
    AV
    ? w
    1
    V
    1
    X
    a
    1
    V
    2
    X
    a
    2
    . . . V
    n
    X
    a n
    V
    n+1
    V
    ?
    ?
    w
    1
    v
    1
    X
    a
    1
    V
    2
    X
    a
    2
    . . . V
    n
    X
    a n
    V
    n+1
    V
    ? w
    1
    v
    1
    a
    1
    V
    2
    X
    a
    2
    . . . V
    n
    X
    a n
    V
    n+1
    V
    ?
    ?
    w
    1
    v
    1
    a
    1
    v
    2
    X
    a
    2
    . . . V
    n
    X
    a n
    V
    n+1
    V
    ? w
    1
    v
    1
    a
    1
    v
    2
    a
    2
    V
    3
    X
    a
    3
    . . . V
    n
    X
    a n
    V
    n+1
    V
    ? w
    1
    v
    1
    a
    1
    v
    2
    a
    2
    v
    3
    a
    3
    . . . v n
    a n
    V
    n+1
    V
    ?
    ?
    w
    1
    v
    1
    a
    1
    v
    2
    a
    2
    v
    3
    a
    3
    . . . v n
    a n
    v n+1
    V
    ?
    ?
    w
    1
    ww
    2
    Заменим его на
    S ?
    ?
    U V
    1
    a
    1
    V
    2
    a
    2
    . . . V
    n a
    n
    V
    n+1
    V
    ?
    ?
    w
    1
    V
    1
    a
    1
    V
    2
    a
    2
    . . . V
    n a
    n
    V
    n+1
    V
    ?
    ?
    w
    1
    v
    1
    a
    1
    V
    2
    a
    2
    . . . V
    n a
    n
    V
    n+1
    V
    ?
    ?
    w
    1
    v
    1
    a
    1
    v
    2
    a
    2
    . . . a n
    V
    n+1
    V
    ?
    ?
    w
    1
    v
    1
    a
    1
    v
    2
    a
    2
    . . . a n
    v n+1
    V
    ?
    ?
    w
    1
    v
    1
    a
    1
    v
    2
    a
    2
    . . . a n
    v n+1
    w
    2
    ?
    ?
    w
    1
    ww
    2

    Таким образом, мы получили вывод S ?
    ?
    w
    1
    ww
    2
    в ?. Следовательно,
    L(?
    0
    ) ? L(?)
    Лемма 10. (Нормальная форма Хомского) Если язык L(?), порожден- ный грамматикой ? = (N, T, S, P ), не содержит ?, то существует грамматика ?
    0
    , в которой каждое правило имеет вид либо
    A ? BC,
    либо
    A ? a,

    где A, B, C ? N, a ? T , и L(?) = L(?
    0
    )

    36
    Глава 3. Грамматики

    Доказательство. По лемме 9, можем считать, что каждое правило ?
    имеет вид либо A ? A
    1
    A
    2
    A
    3
    . . . A
    m
    , A, A
    1
    , A
    2
    , A
    3
    , . . . , A
    m
    ? N

    либо A ?
    a

    , A ? N, a ? T . Построим ?
    0
    , заменив правила вида A ? A
    1
    A
    2
    A
    3
    . . . A
    m на множество правил A ? A
    1
    X
    1
    , X
    1
    ? A
    2
    X
    2
    , . . ., X
    m?2
    ? A
    m?1
    A
    m
    , где каждая замена правила использует новое множество символов. Вывод
    A ? A
    1
    X
    2
    ? A
    1
    A
    2
    X
    3
    ?
    ?
    A
    1
    A
    2
    A
    3
    . . . A
    m в ?
    0

    влечет L(?) ? L(?
    0
    )

    Если вывод S ?
    ?
    w в ?
    0

    использует правила только из ?, то w ? L(?
    0
    )

    Пусть используются еще и правила из ?
    0
    , и W
    m
     последняя строка в выводе, содержащая символ не из ?, то есть W
    m
    ? W
    m+1
    ?
    ?
    w
    , и
    W
    m
    ? W
    m+1
    имеет вид UX
    m?2
    V ? U A
    m?1
    A
    m
    V
    . Следовательно, вывод использует множество правил A ? A
    1
    X
    1
    , X
    1
    ? A
    2
    X
    2
    , . . ., X
    m?2
    ?
    A
    m?1
    A
    m и представляется в виде
    S ?
    ?
    U AV ?
    ?
    U A
    1
    X
    1
    V ?
    ?
    ?
    ?
    U A
    0 1
    X
    1
    V ?
    ?
    U A
    0 1
    A
    0 2
    X
    2
    V ?
    ?
    ?
    ?
    U A
    0 1
    A
    0 2
    X
    2
    V ?
    ?
    U A
    0 1
    A
    0 2
    A
    3
    X
    3
    V ?
    ?
    ?
    ?
    U A
    0 1
    A
    0 2
    A
    0 3
    X
    3
    V ?
    ?
    ?
    ?
    U A
    0 1
    . . . A
    m?2
    X
    m?2
    V ?
    ?
    U A
    0 1
    · · · A
    0
    m?2
    X
    m?2
    V ?
    ?
    w ? W
    m+1
    ,
    где U
    0
    = U A
    0 1
    A
    0 2
    A
    0 3
    · · · A
    0
    m?2
    и A
    i
    ?
    ?
    A
    0
    i

     вывод ?. Если вывод S ?
    ?

    w все еще не вывод ?, снова рассмотрим последнюю строку вывода, содержа- щую символ из ?
    0
    \?

    , и продолжим этот процесс до тех пор пока не исклю- чим все подобные подстроки. Таким образом, w ? ? и L(?
    0
    ) ? L(?)

    Определение 31. Пусть теперь L(?) содержит ?. Добавим к ?
    0
    два нетерминала  S
    0
    и ?, где S
    0
     новый стартовый символ и правила
    S
    0
    ? S?
    и ? ? ?. Полученная грамматика называется грамматикой в
    ?
    -дополненной форме Хомского.
    Теорема 18. Пусть дана контекстно-свободная грамматика ?, содер- жащая ?, тогда существует такая контекстно-свободная грамматика в ?-дополненной форме Хомского ?
    0

    , что L(?) = L(?
    0
    )
    Определение 32. Удаление левой рекурсии  удаление правил вида
    A ? Aa
    Пусть в грамматике ? без ?-правил
    A ? AV
    1
    , A ? AV
    2
    , . . . , A ? AV
    n

    3.2. Нормальные формы Хомского и Грейбаха
    37
    есть множество всех правил, правая часть которых начинается с A.
    Пусть
    A ? U
    1
    , A ? U
    2
    , . . . , A ? U
    m
    ?
    остальные правила.

    Построим грамматику ?
    0
    добавив новый нетерминал A
    0
    и осуще- ствив следующее:
    1) Удалим все правила вида A ? AV
    i для 1 ? i ? n.
    2) Введем новые правила A ? U
    i
    A
    0
    для 1 ? i ? n.
    3) Введем новые правила A
    0
    ? V
    i
    A
    0
    и A
    0
    ? V
    i

    Лемма 11. L(?
    0
    ) = L(?)

    Доказательство. Пусть правило, начинающееся с A, имеет вид A ?
    U
    i
    A
    для 1 ? i ? n, и A ? AV
    (1)
    ? AV
    (2)
    V
    (1)
    ?
    ?
    AV
    (k)
    . . . V
    (2)
    V
    (1)
    ?
    U
    (i)
    V
    (k)
    . . . V
    (2)
    V
    (1)
    , где V
    (j)
    ? {V
    1
    , V
    2
    , . . . , V
    n
    }
    для все 1 ? j ? k и U
    (i)
    ?
    {U
    1
    , U
    2
    , . . . , U
    m
    }
    . следовательно, используя левый вывод, каждый вывод,
    содержащий A имеет вид wAW ? wAV
    (1)
    W ? wAV
    (2)
    V
    (1)
    W ?
    ?
    ?
    ?
    wAV
    (k)
    . . . V
    (2)
    V
    (1)
    W ? wU
    (i)
    V
    (k)
    . . . V
    (2)
    V
    (1)
    W.
    Но
    A ? AV
    (1)
    ? AV
    (2)
    V
    (1)
    ?
    ?
    ?
    ?
    AV
    (k)
    . . . V
    (2)
    V
    (1)
    ? U
    (i)
    V
    (k)
    . . . V
    (2)
    V
    (1)
    можно заменить на
    A ? U
    (i)
    A
    0
    ? U
    (i)
    V
    (k)
    A
    0
    ? U
    (i)
    V
    (k)
    V (k ? 1)A
    0
    ?
    ?
    ?
    ?
    U
    (i)
    V
    (k)
    . . . V
    (2)
    A
    0
    ? U
    (i)
    V
    (k)
    . . . V
    (2)
    V
    (1)

    Приписав w слева, а W  справа от каждой строки в выводе, получим wAW ?
    ?
    wU
    (i)
    V
    (k)
    . . . V
    (2)
    V
    (1)
    W
    в ?
    0

    . Следовательно, L(?) ? L(?
    0
    )

    Доказательство L(?
    0
    ) ? L(?)
    аналогично.
    Лемма 12. Пусть A ? UBV  правило грамматики ? и B ? W
    1
    ,
    B ? W
    2
    , . . ., B ? W
    m

     множество всех правил с B слева. Пусть ?
    0
     грамматика без правила A ? UBV , но с добавленными правилами
    A ? U W
    i
    V

    для 1 ? i ? m, тогда L(?) = L(?
    0
    )
    Доказательство. Правило A ? UW
    i
    V
    всегда можно заменить на пра- вило A ? UBV , которое предшествует правилу B ? W
    i
    . Следовательно,
    L(?
    0
    ) ? L(?)
    Обратное включение доказывается аналогично.

    38
    Глава 3. Грамматики
    Лемма 13. (Нормальная форма Грейбаха) Любая контекстно-свободная грамматика, непорождающая ? может быть выражена так, что каж- дое правило вывода имеет вид
    A ? aW,
    где a ? T , а W  строка, которая либо пуста, либо состоит из тер- миналов и/или нетерминалов.
    Доказательство. Пронумеруем все нетерминалы, начиная со стартового символа S. Обозначим все нетерминалы через A
    1
    , A
    2
    , A
    3
    , . . . , A
    m
    . Наша первая цель  изменить каждое правило так, чтобы оно приняло вид
    1)A ? aW,
    где a ? T , а W  строка, которая либо пуста, либо состоит из терминалов и/или нетерминалов, или
    2)A
    i
    ? A
    j
    Y,
    где i < j, а Y  строка, которая состоит из терминалов и/или нетермина- лов. Напомним, что процедуры удаления левой рекурсии и нетерминалов из лемм 11, 12 не меняют языка грамматики.
    По индукции, для i = 1, поскольку S = A
    1
    автоматически имеет мень- ший порядковый номер, чем любой другой нетерминал, нужно рассмот- реть только S ? SY . Тогда S справа от ? можно удалить по правилу удаления левой рекурсии. Пусть утверждение верно для A
    i
    , i < k. До- кажем его для i = k. В каждом случае A
    k
    ? A
    j
    Y
     правило для k > j,
    используем процедуру из леммы 12 для удаления A
    j
    . Если A
    k
    ? A
    k
    Y
    
    правило, воспользуемся правилом из леммы 11 для удаления A
    k с правой стороны.
    Итак, можем считать, что каждое правило представлено в одном из следующих двух видов:
    1)A ? aW,
    где a ? T , а W  строка, которая либо пуста, либо состоит из терминалов и/или нетерминалов, или
    2)A
    i
    ? A
    j
    Y,
    где i < j, а Y  строка, которая состоит из терминалов и/или нетерми- налов.
    Каждое правило с A
    m слева должно иметь вид A
    m
    ? aW
    , посколь- ку нет нетерминалов с номером, большим m. Если нет правил вида
    A
    m?1
    ? A
    m
    W
    0
    , воспользуемся процедурой Леммы 12 для удаления A
    m
    В результате получим правило в виде A
    m
    ? bW
    00
    . Пусть k  наибольшее

    3.2. Нормальные формы Хомского и Грейбаха
    39
    из таких чисел, что A
    k
    ? A
    j
    Y
     правило, для которого k < j. Снова применив Лемму 12 для удаления A
    j
    , получим правило типа A
    k
    ? aW
    После завершения этого процесса, получим
    A
    i
    ? aW,
    где a ? T , а W  строка, которая либо пуста, либо состоит из терминалов и/или нетерминалов для каждого i. Рассмотрим теперь нетерминалы B
    i
    ,
    полученные при применении Леммы 11. По построению B
    i
    , не существует правил вида B
    i
    ? B
    j
    W
    . Следовательно, правила с B
    i слева от ? имеют тип либо B
    i
    ? aW
    , либо B
    i
    ? A
    j
    W
    . Повторяя уже приведенный выше процесс, получим правила вида B
    i
    ? aW
    Теорема 19. Каждая контекстно-свободная грамматика ?, язык ко- торой не содержит ? может быть представлена в нормальной форме
    Грейбаха.
    Доказательство. Каждое правило может быть представлено в виде
    A ? aW,
    где a ? T , а W  строка, которая либо пуста, либо состоит из терми- налов и/или нетерминалов. Далее каждый терминал b в W заменим на нетерминал A
    b и добавим правила A
    b
    ? b
    Определение 33. Для каждой контекстно-свободной грамматики, со- держащей ?, построим грамматику в расширенной нормальной фор- ме Грейбаха, принимающей пустое слово, просто добавив правило S ?
    ?
    после применения процедур из предыдущей леммы.
    Задачи
    1. Пусть ? = (N, T, S, P )  грамматика, для которой N = {S, A, B},
    T = {a, b}
    , а P состоит из правил
    S ? ABABABA, A ? Aa, A ? ?, B ? b.
    a) Найти нормальную форму Хомского ?.
    b) Найти нормальную форму Грейбаха ?.
    2. Пусть ? = (N, T, S, P )  грамматика, для которой N = {S, A, B},
    T = {a, b}
    , а P состоит из правил
    S ? SS, B ? aa, S ? BS, B ? bb, S ? SB,

    40
    Глава 3. Грамматики
    A ? ab, S ? ?, A ? ba, S ? ASA.
    a) Найти нормальную форму Хомского ?.
    b) Найти нормальную форму Грейбаха ?.
    3. Пусть ? = (N, T, S, P )  грамматика, для которой N = {S, A, B},
    T = {a, b}
    , а P состоит из правил
    S ? AbaB, A ? bAa, A ? ?, B ? AAb, B ? aabA.
    a) Найти нормальную форму Хомского ?.
    b) Найти нормальную форму Грейбаха ?.
    3.3 Автоматы с магазинной памятью
    Определение 34. Автомат с магазинной памятью (PDA-автомат)
     набор
    M = (?, Q, s, I, ?, F ),
    где
    ?
     конечный алфавит,
    Q
     конечное множество состояний,
    s
     начальное или стартовое состояние,
    I
     алфавит памяти (магазина),
    ?
     функция перехода ? ? ((? S{?} Ч Q Ч I S{?}) Ч (Q Ч I S{?})),
    F
     множество приемных состояний.
    То есть ? прочитывает букву ? S{?}, определяет состояние, прочи- тывает букву I S{?}. Затем меняет или нет состояние, и выводит букву из I S{?}. Аналогично случаю обычного автомата, буква слова при про- чтении удаляется из слова. Последняя буква стека также удаляется при прочтении. Говорят, что она выводится из стека. Буква I, полученная с помощью ? записывается в стек. Слово принимается АМП, если и толь- ко если после прочтения этого слово начиная со стартового состояния и пустого стека, автомат переходит в конечное состояние и стек снова пуст. Язык, принимаемый M, обозначим L(M).
    Определение 35. M  детерминированный автомат с магазин- ной памятью если ? ? ((? S{?} Ч Q Ч I S{?}) Ч (Q Ч I S{?})) имеет следующее свойство: если ((s, a, c), (s
    0
    , c
    0
    ))
    и ((s, a, c), (s
    00
    , c
    00
    )) ? F
    , то s
    0
    = s
    00
    и c
    0
    = c
    00
    Пример:

    3.3. Автоматы с магазинной памятью
    41
    Работа этого автомата при обработке строки abba
    Действие
    Стек Лента
    Start (начало)
    ?
    abba read (ввод)
    ?
    bba push (запись в стек) a a bba resd (ввод)
    a ba pop (вывод)
    ?
    ba read (ввод)
    ?
    a push (запись в стек) b b a
    read (ввод)
    b
    ?
    pop (вывод)
    ?
    ?
    accept (прием)
    ?
    ?
    Теорема 20. Язык контекстно-свободной грамматики ?  язык неко- торого автомата с магазинной памятью.
    Доказательство. Доказательство конструктивно. Построим автомат по данной грамматике.
    1. Начинаем с автомата записи в стек S.
    2. Если нетерминал A выводится из стека, то для некоторого правила
    A ? w в ?, w записывается в стек, то есть строим автомат

    42
    Глава 3. Грамматики
    3. Если терминал a выводится из стека, то этот же символ должен быть прочитан, то есть строим автомат
    Пример:
    Пусть ? = (N, T, S, P )  грамматика N = {S}, T = {a, b}, и P состоит из правил
    S ? aSa, S ? bSb, S ? ?.
    Соответствующий этой грамматике автомат:

    3.4. Контекстно-свободные языки и лемма о накачке
    43
    Задачи
    1. Построить автомат с магазинной памятью, принимающий язык: по- рожденный грамматикой ? = (N, T, S, P ), где N = {S, A, B}, T = {a, b, c},
    и P состоит из правил a)
    S ? aA, A ? aAB, A ? a, B ? bB ? ?.
    b)
    S ? AB, A ? abaA, A ? ?, B ? Bcacc, B ? ?.
    c)
    S ? AcB, A ? abaA, A ? ?, B ? Bcacb, B ? ?.
    d)
    S ? AB, A ? acA, B ? bcB, B ? bB,
    A ? aAa, B ? ?, A ? ?.
    e)
    S ? AB, A ? aAc, B ? bBc, B ? bB,
    A ? AaA, B ? ?, A ? ?.
    3.4 Контекстно-свободные языки и лемма о накачке
    Определение 36. Пусть ?  контекстно-свободная грамматика, на- зовем язык L(?) контекстно-свободным.
    Предположим, что грамматика ? представлена в нормальной форме
    Хомского.

    1   2   3   4   5


    написать администратору сайта