Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovik.docx
Скачиваний:
1
Добавлен:
20.04.2019
Размер:
358.96 Кб
Скачать
  • Искючим из грамматики правила, содержащие непроизводящие нетерминалы

    R’={ S  b, S  C, A  e, A  Ab, C  Ca, C  d }

    G1=( T, Np, S, R’)

    1. Множество достижимых символов Nr = {d,a,b,S,C}

      • N0={S}

      • N1={S,b,C}, из правил S  b, S  C

      • N2={S,b,C,a,d} из правил C  Ca, C  d

      • N3={S,C,b,a,d}.

      • Nr = {d,a,b,S,C}

    2. Исходная грамматика без бесполезных символов будет выглядеть следующим образом.

    N’={S,C}, T’={a, b, d}, R’’={ S  b, S  C, C  Ca, C  d }

    G = < T’, N’, S, R’’ >

    2.2.2. Исключение -правил

    Преобразовать исходную КС-грамматику G = < T, N, S, R > в эквивалентную НКС-грамматику:

    2.2.2.1.   T = { a, b }, N = { A, B, S }, R = { S  AB, A   SA, A  BB, A  bB, B  b, B  aA, B  };

    Множество укорачивающих нетерминалов:

    Nε ={B, A, S}

    • N0={B} из правила B  

    • N1={B,A} из правила A  BB

    • N2={B,A,S} из правила S  AB

    • Nε ={B, A, S}

    Построение R’ = {

    B  b,

    B  aA,

    B  a, //A Nε, исключаем правило A  BB,

    A  bB,

    A  b, //B Nε, исключаем правило B  

    A   SA,

    A   S, //S Nε, исключаем правило S  AB

    S  AB,

    S  A,

    S  B,

    S’   S, //S Nε ,добавляем правило S’   

    S’   

    }

    Т.о.преобразованная грамматика -

    G’ = < T, N, S’, R’ >

    2.2.3. Исключение цепных правил

    Преобразовать НКС-грамматику G = < T, N, S, R > в эквивалентную КС-грамматику, не содержащую цепных правил.

    2.2.3.1. T = { i, :=, (, ) }, N = { S, A, B, F, L, P, Q }, R = { S   LA, S   LB, L   P:= , L   Q:= , P   i, A   F, Q   i, B   F, F   Q(i) };

    1. для каждого D из N построим множество ND {E | D  * E}

    NS={S} NA={A,F} NB{B,F} NF={F} NL={L} NP={P} NQ={Q}

    2. Построим R’ без цепных правил

    wR’ = {S LA, S   LB, L   P:= , L   Q:= , P   i, Q   i, AQ(i), BQ(i)}, FQ(i)};

    Т.о. преобразованная грамматика –

    G = < T, N, S, R’ >

    2.2.4. Исключение левой рекурсии

    Исключить левую рекурсию из КС-грамматики G = < T, N, S, R >.

    2.2.4.1.   T = { a, b, с }, N = { S, A }, R = { S   SaA, S   AA, S   b, A   ASa, A   Ab, A   c };

    1. i=1

    S   SaA; S   AA, S   b

    после замены S   AA, S   b, S   AAS’, S   bS’, S’   aA, S’   aA S’

    1. i=2, j=1

    правил вида A2A1a нет.

    j=i-1

    1. j=1, i=2

    A   ASa, A   Ab, A   c

    После замены A   c, A   cА’, A’   Sa, A’   b,

    A’   SaA’, A’   bA’

    R’={ S   AA, S   b, S   AAS’, S   bS’, S’   aA, S’   aA S’, A   c, A   cА’, A’   Sa, A’   b,

    A’   SaA’, A’   bA },

    N’={S,A,S’A’}

    Грамматика без левой рекурсии -

    G’={T,N’,S,R’}

    Раздел 3

    КОНЕЧНЫЕ АВТОМАТЫ И ПРЕОБРАЗОВАТЕЛИ

    Формулировка задания.

    Построить детерминированный конечный автомат (КА) по автоматной грамматике G = < T, N, S, R >. Определить язык, допускаемый конечным автоматом.

    3.2.1.4. T = { 0, 1 }, N = { S, A, B }, R = { S  , S   1S, S   0A, A   1S, A   0B, B   , B   0B, B 1B };

    Исключим e-правила

    S->e

    S->1S S->1

    S->0A

    A->1S A->1

    A->0 A->0B

    B->0 B->0B, B->1, B->1B

    Функции переходов недетерминированного конечного автомата.

    (S,1)={S,E}

    (S,0)=A

    (A,1)={S,E}

    (A,0)={B,E}

    (B,1)={B,E}

    (B,0)={B,E}

    Преобразование недетерминированного конечного автомата в детерминированный.

    0

    1

    P0 {S}

    P1 {A}

    P2 {S,E}

    P1 {A}

    P3 {B,E}

    P2 {S,E}

    P2 {S,E}

    P1 {A}

    P2 {S,E}

    P3 {B,E}

    P3 {B,E}

    P3 {B,E}

    F={P0,P2,P3} q0=p0 {1,0} {P0,P1,P2,P3}

    Г раф переходов полученного детерминированного автомата

    Функция переходов

    (p0,0)=p1

    (p0,1)=p2

    (p1,0)=p3

    (p1,1)=p2

    (p2,0)=p1

    (p2,1)=p2

    (p3,0)=p3

    (p3,1)=p3

    Описание языка, допускаемого конечным автоматом.

    Цепочки, принадлежащие языку – наборы 1 и 0, начало которых – последовательности 1 любой длины, резделяемые 0, конец – произвольная последовательность 1 и 0 любой длины. Начало и конец разделены двумя нулями

    начало и/или конец могут отсутствовать

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

    (p0, 111101100100101001)

    (p2, 11101100100101001)

    (p2, 1101100100101001)

    (p2, 101100100101001)

    (p2, 01100100101001)

    (p1,1100100101001)

    (p2, 100100101001)

    (p1, 00100101001)

    (p3, 0100101001)

    (p3, 100101001)

    (p3, 00101001)

    (p3, 0101001)

    (p3, 101001)

    (p3, 01001)

    (p3, 1001)

    (p3, 001)

    (p3, 01)

    (p3, 1)

    (p3,ε)

    p3 – одно из конечных состояний ДКА

    Последовательность конфигураций конечного преобразователя при переводе цепочки, не принадлежащей языку. 11110

    (p0, 11110)

    (p2, 1110)

    (p2, 110)

    (p2, 10)

    (p2, 0)

    (p1, 11110)

    3.2  

    Формулировка задания

      Определить конечный преобразователь, осуществляющий перевод последовательности составных имен (идентификаторов, разделенных символом ".") в последовательность цепочек 1n , где n – число простых идентификаторов, входящих в состав составного идентификатора. Элементы последовательности разделяются запятой, признаком конца последовательности является символ "#".

    Функции переходов и выходов, таблица переходов и выходов и граф переходов и выходов детерминированного конечного преобразователя.

    а – любой символ имени

    (q0, a) = {(q1, )}

    (q1, a) = {(q1, )}

    (q1, .) = {(q2, 1)}

    (q1, , ) = {(q3, 1)}

    (q1, #) = {(qe, 1)}

    (q2, a) = {(q1, )}

    (q3, a) = {(q1, ,)}

    Последовательность конфигураций и выходная цепочка конечного преобразователя при переводе цепочки, принадлежащей языку.

    AB.D,C,A# результат преобразования должен быть 11,1,1

    (q0, AB.D,C,A#,) ->(q1, B.D,C,A#, )->(q1, .D,C,A#, )->(q2, D,C,A#,1)->(q1, ,C,A#, 1)->(q3, C,A#, 11)->(q1, ,A#, 11,)->(q3, A#, 11,1)->(q1, #, 11,1,)->(qe, , 11,1,1)

    Последовательность конфигураций конечного преобразователя при переводе цепочки, не принадлежащей языку.

    C.D,A.# данная цепочка не принадлежит языку.

    (q0, C.D,A.#,) -> (q1, .D,A.#,) ->(q2, D,A.#, 1)-> (q1, ,A.#,1)-> (q3, A.#,11)-> (q1, .# ,11,)-> (q2, #, 11,1).

    Раздел 4.

    АВТОМАТЫ И ПРЕОБРАЗОВАТЕЛИ С МАГАЗИННОЙ ПАМЯТЬЮ

    4.2.1.6

    Формулировка задания

    Построить детерминированный магазинный автомат, распознающий цепочки из множества { 0n1n , n > 0 }  { 1n0n , n > 0 }.

    P= <{q0,q1,q2,q3,q4,q5,qe},{1,0},{1,0,Z}, ,Z, q0, qe>

    Функции переходов:

    (q0,1,Z)=(q1,1Z)

    (q0,0,Z)=(q2,0Z)

    (q1,1,1)=(q1,11)

    (q1,0,1)=(q3,ε)

    (q2,0,0)=(q2,00)

    (q2,1,0)=(q4, ε)

    (q3,0,1)=(q3,ε)

    (q4,1,0)=(q4,ε)

    (q3, ε ,Z)=(qe,ε)

    (q4, ε,Z)=(qe,ε)

    Последовательность конфигураций при разборе цепочки 111000, принадлежащей языку .

    (q0, 111000, Z)├ (q1, 11000, 1Z) ├ (q1, 1000, 11Z) ├ (q1, 000, 111Z) ├ (q3, 00, 11Z) ├ (q3, 0, 1Z) ├ (q3, ε, Z) ├ (qe, ε, ε).

    Последовательность конфигураций при разборе цепочки 00111, не принадлежащей языку .

    (q0,00111,Z) ├ (q2,0111,0Z) ├ (q2,111,00Z) ├ (q4,11,0Z )├ (q4,1,Z)

    Из данного состояния невозможно совершить переход.

    4.2.2.8.  

     Формулировка задания

    Построить детерминированный преобразователь с магазинной памятью, осуществляющий перевод произвольной цепочки из множества {13n+20n , n ≥ 0} в цепочку вида 1n0n.

    P= <{q0,q1,q2,q4,q5, q6,q7 },{1,0},{1,0}{1,0,Z}, ,Z, q0, q7>

    (q0,1,Z)=(q1,Z, ε)

    (q1,1,Z)=(q2,Z, ε)

    (q2,ε,Z)=(q7, ε, ε)

    (q2,1,Z)=(q4,1Z, ε)

    (q2,1,1)=(q4,11, ε)

    (q2,0,1)=(q6, ε, 0)

    (q4,1,Z)=(q5,Z, ε)

    (q4,1,1)=(q5,1, ε)

    (q5,1,Z)=(q2,1Z, 1)

    (q5,1,1)=(q2,11, 1)

    (q6, 0, 1)=(q6, ε, 0)

    (q6, ε, Z)=(q7, ε, ε)

    Преобразование цепочки 1111111100, принадлежащей языку.

    (q0, 1111111100,Z, ε) ├ (q1, 111111100, Z, ε) ├ (q2, 11111100, Z, ε) ├ (q4, 1111100, Z, ε) ├ (q5, 111100, Z, ε) ├ (q2, 11100,1Z, 1) ├ (q4, 1100,1Z,1) ├ (q5, 100,1Z,1) ├ (q2, 00, 11Z, 11) ├ (q6, 0 ,1Z, 110) ├ (q6, ε, Z, 1100) ├ (q7, ε, ε, 1100)

    Преобразование цепочки 1100, не принадлежащей языку.

    (q0, 1100, Z, ε) ├ (q1, 100, Z, ε) ├ (q2, 00, Z, ε). Из текущей конфигурации невозможно совершить переход.

    4.2.3.1.

    Формулировка задания

    Построение недетерминированного МП-автомата по КС-грамматике

       T = { a, b, с }, N = { S, A }, R = { S   SaA, S   AA, S   b, A   ASa, A   Ab, A   c };

    (q,,S)={(q,SaA),(q,AA),(q,b)}

    (q,,A)={(q,Asa),(q, Ab),(q, c)}

    (q,α, α)={(q, )} для α € { a, b, с }

    4.2.3.4.

    Формулировка задания

    Построить недетерминированный расширенный МП-автомат по КС- грамматике

    T = { a, b, с, d }, N = { S, A }, R = { S   aA, S   Ab, A   Sc, A   d };

    P=({q, r}, {a, b, c, d}, {a, b, c, d, S, A,Z}, , q, Z, {r})

    (q, t, )=(q, t), t €{ a, b, с, d }

    (q, , аA)= (q, S)

    (q, , Ab)= (q, S)

    (q, , Sc)= (q, A)

    (q, , d)= (q, A)

    (q, , ZS)= (r, )

    Раздел 5

    АЛГОРИТМ РАЗБОРА ДЛЯ LL(1)-ГРАММАТИК

    Формулировка задания:

    Построить управляющую таблицу и промоделировать работу LL(1)-анализатора для КС-грамматики G = < T, N, S, R >.

        T = { a, b, c, d, e }, N = { S, A, B }, R = { S   aAB, S   bBS, S   , A   cBS, A   , B   dB, B    };

    1. S   aAB,

    2. S   bBS,

    3. S   ,

    4.A   cBS,

    5.A  ,

    6.B   dB,

    7.B   

    S β

    FIRST(β)={a,b,}

    A β

    FIRST(β)={c, }

    B β

    FIRST(β) = {d, }

    A

    b

    c

    d

    e

    S

    aAB,1

    bBS,2

    ,3

    ,3

    A

    сBS,4

    ,5

    ,5

    B

    ,7

    ,7

    dB,6

    ,7

    a

    B

    b

    B

    c

    B

    d

    B

    Д

    Контрольный пример – разбор цепочки, порождаемой этим алгоритмом

    acdbd

    (acdbd,S┴, )->

    (acdbd,aAB┴,1)->

    (cdbd,AB┴,1)->

    (cdbd,cBSB┴,14)->

    (dbd,BSB┴,14)->

    (dbd,dBSB┴,146)->

    (bd,BSB┴,146)->

    (bd,SB┴,1467)->

    (bd,bBSB┴,14672)->

    (d,BSB┴,14672)->

    (d,dBSB┴,146726)->

    (,BSB┴,146726)->

    (,SB┴,1467267)->

    (,B┴,14672673)->

    (,┴,146726737)

    M(S,a)=(aAB,1)

    ВЫБРОС

    M(A,c)=(cBS,4)

    ВЫБРОС

    M(B,d)=(dB,6)

    ВЫБРОС

    M(B,b)=(,7)

    M(S,b)=(bBS,2)

    ВЫБРОС

    M(B,d)=(dB,6)

    ВЫБРОС

    M(B, )=(,7)

    M(S, )=(,3)

    M(B, )=(,7)

    ДОПУСК

    Раздел 6

    АЛГОРИТМ РАЗБОРА ДЛЯ LR(0)-ГРАММАТИК И SLR(1)-ГРАММАТИК

    Формулировка задания:

    6.2. Построить управляющую таблицу и промоделировать работу SLR(1)-анализатора для КС-грамматики G = < T, N, S, R >.

    6.2.2.   T = { v, u, w, y }, N = { S, A, B, C }, R = { S   Bv, S   vC, A  u, A   vBS, B   u, B   yw, C   Bv, C   yAw };

    Построение управляющей таблицы:

    1. Построение дополненной грамматики

    Дополнительное правило S’S

    0 S’S

    1 S   Bv

    2 S   vC

    3 A  u

    4 A   vBS

    5 B   u

    6 B   yw

    7 C   Bv

    8 C   yAw

    ┴OBLOW {S0,B1,v2,u5,y6}

    B1 OBLOW {v1}

    V2 OBLOW{c2,B7,u5,y6,y8}

    V4 OBLOW {B4,u5,y6}

    B4 OBLOW {S4,B1,u5,y6,v2}

    Y6 OBLOW {w6}

    B7 OBLOW {v7}

    Y8 OBLOW {A8,u3,v4}

    A8 OBLOW {w8}

    Таблица отношения OBLOW

    S0

    B1

    V1

    C2

    V2

    A3

    U3

    A4

    V4

    B4

    S4

    B5

    U5

    B6

    Y6

    W6

    C7

    B7

    V7

    C8

    Y8

    A8

    W8

    S0

    B1

    +

    V1

    C2

    V2

    +

    +

    +

    +

    +

    A3

    U3

    A4

    V4

    +

    +

    +

    B4

    +

    +

    +

    +

    +

    S4

    B5

    U5

    B6

    Y6

    +

    W6

    C7

    B7

    +

    V7

    C8

    Y8

    +

    +

    +

    A8

    +

    W8

    +

    +

    +

    +

    +


    На основании таблицы OBLOW построим таблицу переходов конечного автомата

    S

    A

    B

    C

    u

    v

    w

    y

    S0

    B1

    v1

    v1

    C2

    v2

    B7

    C2

    u5

    y6y8

    A3

    u3

    A4

    v4

    B4

    u5

    y6

    B4

    S4

    B1

    u5

    v2

    y6

    S4

    B5

    u5

    B6

    y6

    w6

    w6

    C7

    B7

    v7

    v7

    C8

    y8

    A8

    u3

    v4

    A8

    w8

    w8

    S0

    B1

    u5

    v2

    y6

    Преобразуем полученный автомат в детерминированный

    S

    A

    B

    C

    u

    v

    w

    y

    S0

    B1

    V1

    v1

    C2

    v2

    B7

    C2

    U5

    Y6Y8

    A3

    u3

    A4

    v4

    B4

    U5

    Y6

    B4

    S4

    B1

    U5

    V2

    Y6

    S4

    B5

    u5

    B6

    y6y8

    A8

    U3

    V4

    W6

    w6

    C7

    B7

    V7

    v7

    C8

    A8

    W8

    w8

    S0

    B1

    U5

    V2

    Y6

    Определим множество магазинных символов

    S0

    S0

    B1

    B1

    V1

    V1

    C2

    C2

    V2

    V2

    A3

    A3

    U3

    U3

    A4

    A4

    V4

    V4

    B4

    B4

    S4

    S4

    B5

    B5

    U5

    U5

    B6

    B6

    Y6Y8

    Yx

    W6

    W6

    C7

    C7

    B7

    B7

    V7

    V7

    C8

    C8

    A8

    A8

    W8

    W8


    Тогда функции переходов имеют вид:

    g(X)

    S

    A

    B

    C

    u

    v

    w

    y

    S0

    B1

    V1

    V1

    C2

    V2

    B7

    C2

    U5

    Yx

    A3

    U3

    A4

    V4

    B4

    U5

    Yx

    B4

    S4

    B1

    U5

    V2

    Yx

    S4

    B5

    U5

    B6

    Yx

    A8

    U3

    V4

    W6

    W6

    C7

    B7

    V7

    V7

    C8

    A8

    W8

    W8

    S0

    B1

    U5

    V2

    Yx

    f(a)

    ε

    u

    v

    w

    y

    S0

    Д

    B1

    П

    V1

    C1

    C1

    C2

    C2

    C2

    V2

    П

    П

    A3

    U3

    C3

    A4

    V4

    П

    П

    B4

    П

    П

    П

    S4

    C4

    B5

    U5

    C5

    C5

    C5

    B6

    Yx

    П

    П

    П

    W6

    C6

    C6

    C6

    C7

    B7

    П

    V7

    C7

    C7

    C8

    A8

    П

    W8

    C8

    C8

    П

    П

    П


    Контрольный пример – разбор цепочки vyvuywvw, принадлежащей языку.

    (┴, vyvuywvw ,ε)

    (┴v2 , yvuywvw, ε)

    (┴v2Yx, vuywvw, ε)

    (┴v2Yxv4, uywvw , ε)

    (┴v2Yxv4u5, ywvw , 5)

    (┴v2Yxv4B4, ywvw , 5)

    (┴v2Yxv4B4yx, wvw , 5)

    (┴v2Yxv4B4yxw, vw , 5)

    (┴v2Yxv4B4B1, vw , 56)

    (┴v2Yxv4B4B1v1, w ,5 6)

    (┴v2Yxv4B4S4, w , 561)

    (┴v2YxA8 , w , 5614)

    (┴v2YxA8w8, ε, 5614)

    (┴v2C2, ε, 56148)

    (┴S0, ε, 561482)

    ДОПУСК

    т.о. правый разбор цепочки vyvuywvw - 561482

    Раздел 7

    АЛГОРИТМ РАЗБОРА ТИПА "ПЕРЕНОС-СВЕРТКА"

    Формулировка задания:

    7.2. Построить анализатор типа "перенос-свертка" и промоделировать его работу для следующих грамматик слабого предшествования G = < T, N, S, R >:

    7.2.4. T = { i, or, and, not, (, ) }, N = { S, T, P ), R = { S  S or T, S  T, T  T and P, T  P, P  i, P   ( S ), P   not P };

    1. Отношение (=) определяется непосредственно из правил грамматики

    S

    T

    P

    I

    Or

    And

    Not

    (

    )

    S

    =

    =

    T

    =

    P

    I

    or

    =

    and

    =

    not

    =

    (

    =

    )

    2. Определим отношения FIRSTN и LASTN

    FIRSTN

    S

    T

    P

    I

    Or

    And

    Not

    (

    )

    S

    1

    1

    T

    1

    1

    P

    1

    1

    1

    LASTN

    S

    1

    T

    1

    P

    1

    1

    1

    Построим транзитивные замыкания данных отношений

    FIRSTN+

    S

    T

    P

    I

    Or

    And

    Not

    (

    )

    S

    1

    1

    1

    1

    1

    1

    T

    1

    1

    1

    1

    1

    P

    1

    1

    1

    LASTN+

    S

    1

    1

    1

    1

    T

    1

    1

    1

    P

    1

    1

    1

    3. Представим отношения в виде булевых матриц, строки и столбцы которых обозначены символами грамматики в порядке S T P i or and not ( )

    Тогда матрицу отношения (<•) получим из соотношения (<•) = (=)(FIRSTN+)

    0

    0

    0

    0

    1

    0

    0

    0

    1

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    1

    1

    0

    0

    1

    1

    0

    0

    0

    0

    1

    0

    0

    1

    1

    0

    0

    0

    0

    1

    0

    0

    1

    1

    0

    1

    1

    1

    1

    0

    0

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    1

    1

    1

    0

    0

    1

    1

    0

    0

    1

    1

    1

    0

    0

    1

    1

    0

    0

    0

    0

    1

    0

    0

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0


    =

    Т.е. отношение (<•) определяется следующим образом

    S

    T

    P

    I

    Or

    And

    Not

    (

    )

    |S

    T

    P

    I

    Or

    <•

    <•

    <•

    <•

    <•

    and

    <•

    <•

    <•

    Not

    <•

    <•

    <•

    (

    <•

    <•

    <•

    <•

    <•

    <•

    )

    матрицу отношения (•>) получим из соотношения (•>) =((LASTN+)T) (=)(E+FIRSTN+)

    (LASTN+)=

    0

    1

    1

    1

    0

    0

    0

    0

    1

    0

    0

    1

    1

    0

    0

    0

    0

    1

    0

    0

    1

    1

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0


    (LASTN+)T=

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    1

    1

    1

    0

    0

    0

    0

    0

    0

    1

    1

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    1

    1

    0

    0

    0

    0

    0

    0


    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    1

    0

    0

    0

    0

    1

    1

    0

    0

    1

    0

    0

    0

    0

    1

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    1

    0

    0

    1


    ((LASTN+)-1)(=) =

    1

    1

    1

    1

    0

    0

    1

    1

    0

    0

    1

    1

    1

    0

    0

    1

    1

    0

    0

    0

    1

    1

    0

    0

    1

    1

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1


    (E+FIRTSN+) =

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    0

    0

    0

    1

    0

    0

    0

    0

    1

    1

    0

    0

    1

    0

    0

    0

    0

    1

    1

    0

    0

    1

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1

    1

    0

    0

    1

    ((LASTN+)-1)(=) (E+FIRTSN+) =

    Значит матрица отношений предшествования для данной грамматики выглядит следующим образом

    S

    T

    P

    I

    Or

    And

    Not

    (

    )

    ε

    |S

    =

    =

    •>

    T

    =

    •>

    P

    •>

    i

    •>

    or

    <•=

    <•

    <•

    <•

    <•

    and

    =

    <•

    <•

    <•

    not

    =

    <•

    <•

    <•

    (

    <•=

    <•

    <•

    <•

    <•

    <•

    )

    •>

    <•

    <•

    <•

    <•

    <•

    <•

    Используя таблицу отношений предшествования построим функцию переноса

    S

    T

    P

    i

    or

    and

    not

    (

    )

    ε

    |S

    П

    П

    С

    T

    С

    П

    С

    С

    P

    С

    С

    С

    С

    i

    С

    С

    С

    С

    or

    П

    П

    П

    П

    П

    and

    П

    П

    П

    П

    not

    П

    П

    П

    П

    (

    П

    П

    П

    П

    П

    П

    )

    С

    С

    С

    С

    П

    П

    П

    П

    П

    П

    ┴S

    Д


    И функцию свертки

    X

    β

    g(α)

    S or T

    1

    T

    2

    (

    S or T

    1

    (

    T

    2

    T and P

    3

    P

    4

    (

    T and P

    3

    (

    P

    4

    or

    T and P

    3

    or

    P

    4

    i

    5

    (S)

    6

    Not P

    7

    (

    i

    5

    (

    (S)

    6

    (

    Not P

    7

    or

    i

    5

    or

    (S)

    6

    or

    Not P

    7

    and

    i

    5

    and

    (S)

    6

    and

    Not P

    7

    not

    i

    5

    not

    (S)

    6

    not

    Not P

    7


    Контрольный пример - разбор цепочки (not i ) and i or not i, принадлежащей языку

    (┴, (not i ) and i or not I,ε)

    (┴ ( , not i ) and i or not I, ε)

    (┴ (not, i ) and i or not I, ε)

    (┴ (not i,) and i or not I, ε)

    (┴ (not P , ) and i or not I,5)

    (┴ (P , ) and i or not I,57)

    (┴ (T ,) and i or not I,574)

    (┴ (S ,) and i or not I,5742)

    (┴ (S) , and i or not I,5742)

    (┴P, and i or not I,57426)

    (┴T , and i or not I,574264)

    (┴Tand, i or not I,574264)

    (┴Tand I, or not I,574264)

    (┴Tand P , or not I,5742645)

    (┴T , or not I,57426453)

    (┴S , or not i,574264532)

    (┴Sor , not I,574264532)

    (┴Sor not , I,574264532)

    (┴Sor not I , ε,574264532)

    (┴Sor not P , ε,5742645325)

    (┴Sor P, ε,57426453257)

    (┴Sor T , ε,574264532574)

    (┴S, ε, 5742645325741)

    ДОПУСК

    56

  • Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]