Page 44 - 4761
P. 44

L2(F) = { , /}             R2(F) = {E, F, ), a, b}
                  L2(E) = {(, a, b}           R2(E) = {), a, b}

                       Крок 3. Маємо L1(S)   L2(S), отже повертаємось до Кроку 2.
                       Крок 2.
                  L3(S) = {T, E, (, a, b}     R3(S) = {R, T, E, F,), a, b}
                  L3(R) = {+,-}               R3(R) = {R, T, E, F, ), a, b}
                  L3(T) = {E, (, a, b}         R3(T) = {E, F, ), a, b}
                  L3(F) = { , /}             R3(F) = {E, F, ), a, b}
                  L3(E) = {(, a, b}           R3(E) = {), a, b}

                       Крок 3. Ні одна з множин не змінилася, побудова закінчена. Результат:
                  L(S) = {T, E, (, a, b}           R(S) = {R, T, E, F,), a, b}
                  L(R) = {+,-}                  R(R) = {R, T, E, F, ), a, b}
                  L(T) = {E, (, a, b}            R(T) = {E, F, ), a, b}.

                        +      -     *     /      (     )      a     b     S      R     T      F     E     ┴ к
                  +                               <·           <·    <·                 =·           <·
                  -                               <·           <·    <·                 =·           <·
                  *                               <·           <·    <·                              =·
                  /                               <·           <·    <·                              =·
                  (                               <·           <·    <·    =·           <·           <·
                  )     ·>     ·>    ·>    ·>           ·>                        ·>           ·>          ·>
                  a     ·>     ·>    ·>    ·>           ·>                        ·>           ·>          ·>
                  b     ·>     ·>    ·>    ·>           ·>                        ·>           ·>          ·>
                  S                                     =·
                  R                                     ·>                                                 ·>
                  T     <·     <·                       ·>                        =·                       ·>
                  F     ·>     ·>                       ·>                        ·>                       ·>
                  E     ·>     ·>    <·    <·           ·>                        ·>           =·          ·>
                  ┴ п                             <·           <·    <·                 <·           <·

                                             Рисунок 3.5 – Матриця передування

                       Пояснимо  побудову  матриці  на  прикладі  символа  ‘+’  .  В  правилах  граматики
                  R+T|+TR  ‘+’  стоїть  зліва  від  символа  Т.  Отже,  в  рядку  символ  +  в  стовпчику,  який
                  відповідає Т, ставимо знак = .
                         Крім того, в множину L(T) входять символи E,(,a,b, тоді в рядку символа + в усіх
                  стовпцях,  які  відповідають  цим  чотирьом  символам  ставимо  < .  Символ  +,  входять  в
                  множину L(R), а в граматиці є правила виду S     TR; R   +TR|-TR. Отже, треба розглянути
                  множину  R(T).  Тоді  вхідні  символи  E,  F,  a,  b,  ).  Отже,  в  стовпчику  символа  +  в  усіх
                  рядках,  що  відповідають  цим  5  символам,  ставимо   >.  Більше  +  ні  в  які    множини  не
                  входив і ні в яких правилах не зустрічається.
                         Окремо  розглянемо  заповнення  рядка  для  символа   n  і  стовпця   к  .  Множину
                  L(S), де S-початковий символ містить символи T,E,(,a,b,   Поміщаємо <  в рядок, який
                  відповідає   n    для  всіх  5  стовпців,  які  відповідають  цим  символам.  Аналогічно  R(S)
                  містить R,T,E,F,),a,b. Поміщаєм   > в стовпчик, який відповідає   к  для всіх 7 рядків, що
                  відповідають цим символам.
                       Записати послідовність розбору у вигляді послідовності конфігурацій МП-автомата з
                    ох
                  3- складових:
                           1) не переглянутій автоматом частини вхідного ланцюга;
                           2) вмісту стека;
                                                                42
   39   40   41   42   43   44   45   46   47   48   49