
Системное программирование / SSW_kw
.pdfСоздание распределенной системы решения задач
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
3. Если на предыдущем шаге хотя бы одно множество L(U) или R(U) для некоторого символа грамматики изменилось, то следует вернуться к шагу 2, иначе – построение закончено.
Для нахождения множеств Lт(U) и Rт(U) используется следующий алгоритм:
1.Для каждого нетерминального символа грамматики U VN строятся множества L(U) и R(U).
2.Для каждого нетерминального символа грамматики U VN ищутся правила вида U→tz и U→Сtz, где t VТ, C VN, z V*; терминальные символы t включаются во множество Lт(U). Аналогично для множества
Rт(U) ищутся правила вида U→zt и U→ztС. Один и тот же терминальный символ t может быть записан в оба множества Lт(U) и Rт(U).
3. Просматривается множество L(U), в которое входят символы U', U'', … . Множество Lт(U) дополняется терминальными символами, входящими в L(U'), L(U''), … и не входящими в Lт(U). Аналогичная операция выполняется и для множества Rт(U) на основе множества R(U).
Для практического использования матрицу предшествования дополняют терминальными символами н и к (начало и конец цепочки). Для них определены следующие отношения предшествования:
н <. a, если а Lт(U);к .> a, если а Rт(U);
На основе множеств Lт(U) и Rт(U) заполнение матрицы операторного предшествования для КС-грамматики G(VT,VN,P,S) можно выполнить по следующему алгоритму:
1.Взять первый терминальный символ ai VТ, i=1. Считаем этот символ текущим терминальным символом.
2.Во всем множестве правил P ищем правила вида C→xaiby или C→xaiUby, где ai - текущий терминальный символ, b VТ - произвольный терминальный символ, U,C VN, а x,y V*. Фактически производится поиск таких правил, в которых в правой части символы ai и bj стоят рядом или между ними есть не более одного нетерминального символа, причем символ ai обязательно стоит слева от bj.
3.Для всех символов bj, найденных на шаге 2, ставим знак "=." ("составляет основу") в клетки матрицы операторного предшествования на
пересечении строки, помеченной символом ai, и столбца, помеченного символом bj.
4.Во всем множестве правил P ищем правила вида C→xaiUjy, где ai - текущий терминальный символ, Uj,C VN, а x,y V*. Фактически производится поиск таких правил, в которых в правой части символ ai стоит слева от нетерминального символа Uj.
5.Для всех символов Uj, найденных на шаге 4, берем множество символов Lт(Uj). Для всех терминальных символов ck, входящих в это
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Методические указания к выполнению курсовой работы |
31 |
|
Системное программное обеспечение
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
множество, ставим знак "<." ("предшествует") в клетки матрицы предшествования на пересечении строки, помеченной символом ai, и столбца, помеченного символом ck.
6.Во всем множестве правил P ищем правила вида C→xUjaiy, где ai - текущий терминальный символ, Uj,C VN, а x,y V*. Фактически производится поиск таких правил, в которых в правой части символ ai стоит справа от нетерминального символа Uj.
7.Для всех символов Uj, найденных на шаге 6, берем множество символов Rт(Uj). Для всех терминальных символов ck, входящих в это множество, ставим знак ".>" ("следует") в клетки матрицы
предшествования на пересечении строки, помеченной символом ck, и столбца, помеченного символом ai.
8.Если рассмотрены все терминальные символы ai VТ, то переходим к шагу 9, иначе – берем очередной символ ai VТ, i=i+1, делаем его текущим терминальным символом и возвращаетмся к шагу 2.
9.Берем множество Lт(S) для целевого символа грамматики S. Для
всех терминальных символов ck Lт(S) ставим знак "<." ("предшествует") в клетки матрицы операторного предшествования на пересечении строки, помеченной символом н ("начало цепочки") и столбца, помеченного символом ck.
10. Берем множество Rт(S) для целевого символа грамматики S. Для всех терминальных символов ck Rт(S) ставим знак ".>" ("следует") в клетки матрицы операторного предшествования на пересечении строки, помеченной символом ck и столбца, помеченного символом к ("конец цепочки").
Построение закончено.
Если на всех шагах алгоритма построения матрицы предшествования не возникло противоречий, когда в одну и ту же клетку матрицы надо записать несколько различных символов предшествования, то матрица построена правильно (в каждой клетке правильно построенной матрицы присутствует один из символов предшествования либо клетка пуста).
Если возникли противоречия, то исходная грамматика не является грамматикой предшествования. В этом случае можно попробовать преобразовать грамматику так, что она станет удовлетворять требованиям предшествования, либо необходимо использовать другой тип распознавателя.
2.10.1. Построение матрицы предшествования
Построим для грамматики G2(VT,VN,P, <задача>) вначале множества крайних левых и крайних правых символов.
Далее условно будем считать нетерминальные символы:
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
32 |
М.Ф.Степанов |
Создание распределенной системы решения задач
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
<идентификатор_"n">, <идентификатор_"t0">, <идентификатор_"tk">, <идентификатор_"h">, <идентификатор_"A">, <идентификатор_"x0">, <целоеЧисло>, <вещественноеЧисло>
"условно" терминальными, поскольку на этапе синтаксического анализа они выступают в качестве неделимой лексемы и отдельные символы в них не рассматриваются. Представлять их будем их собственными значениями.
Шаг 1.
|
|
Таблица 1 |
Множества символов (результаты выполнения шага 1) |
||
Символ U |
Множество L(U) |
Множество R(U) |
<задача> |
<массивыCразмерностью> |
<разделитель_";"> |
<размерность> |
<идентификатор_"n"> |
<разделитель_";"> |
<началоАнализа> |
<идентификатор_"t0"> |
<вещественноеЧисло> |
<конецАнализа> |
<идентификатор_"tk"> |
<вещественноеЧисло> |
<шаг> |
<идентификатор_"h"> |
<вещественноеЧисло> |
<матрицаА> |
<идентификатор_"A"> |
<разделитель_";"> |
<векторX0> |
<идентификатор_"x0"> |
<разделитель_";"> |
<строкиМатрицы> |
<строкиМатрицы>, |
<разделитель_";">, |
|
<строкаМатрицы>, |
<строкаМатрицы>, |
|
|
<строкиМатрицы>, |
|
|
<вещественноеЧисло> |
<матрица> |
[ |
] |
<массивыCразмерностью> |
<размерность> |
<массивы> |
<массивы> |
<матрицаА> |
<векторX0> |
<строкаМатрицы> |
<вещественноеЧисло> |
<вещественноеЧисло> |
Шаг 2. Дополним множества L(U) и R(U) символами для всех промежуточных нетерминальных символов аналогично шагу 1.
|
|
Таблица 2 |
Множества символов (результаты выполнения шага 2) |
||
Символ U |
Множество L(U) |
Множество R(U) |
<задача> |
<массивыCразмерностью>, |
; |
|
<размерность> |
<массивы> |
<размерность> |
n |
; |
<началоАнализа> |
t0 |
<вещественноеЧисло> |
<конецАнализа> |
tk |
<вещественноеЧисло> |
<шаг> |
h |
<вещественноеЧисло> |
<матрицаА> |
A |
; |
<векторX0> |
x0 |
; |
<строкиМатрицы> |
<строкиМатрицы>, |
;, <строкаМатрицы>, |
|
<строкаМатрицы>, |
<строкиМатрицы>, |
|
<вещественноеЧисло> |
<вещественноеЧисло> |
<матрица> |
[ |
] |
<массивыCразмерностью> |
<размерность>, |
<массивы>, |
|
n |
<векторX0>, ; |
<массивы> |
<матрицаА>, A |
<векторX0>, ; |
<строкаМатрицы> |
<вещественноеЧисло> |
<вещественноеЧисло> |
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Методические указания к выполнению курсовой работы |
33 |
|

Системное программное обеспечение
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
2.10.2. Построение множеств крайних правых и крайних левых терминальных символов.
Здесь возьмем все крайние правые и крайние левые терминальные символы из правил грамматики G2. Получим множества, представленные в таблице 3.
|
|
Таблица 3 |
Множества терминальных символов |
||
Символ U |
Множество LТ(U) |
Множество RТ(U) |
<задача> |
n |
; |
<размерность> |
n |
; |
<началоАнализа> |
t0 |
<вещественноеЧисло> |
<конецАнализа> |
tk |
<вещественноеЧисло> |
<шаг> |
h |
<вещественноеЧисло> |
<матрицаА> |
A |
; |
<векторX0> |
x0 |
; |
<строкиМатрицы> |
<вещественноеЧисло> |
; |
|
|
<вещественноеЧисло> |
<матрица> |
[ |
] |
<массивыCразмерностью> |
n |
; |
<массивы> |
A |
; |
<строкаМатрицы> |
<вещественноеЧисло> |
<вещественноеЧисло> |
2.10.3. Заполнение матрицы предшествования.
Вновь вспомним, что на этапе лексического анализа идентификаторы, целые и вещественные числа, разделители (скобки, точка с запятой) выделены как отдельные лексемы и сохранены в таблице лексем. Поэтому на этапе синтаксического анализа рассматривать их терминальные символы не будем. Проведем анализ типов лексем.
1:<задача> ::= <массивыCразмерностью><началоАнализа>;<конецАнализа>;<шаг>;
2:<размерность> ::= n=<целоеЧисло>;
3:<началоАнализа> ::= t0=<вещественноеЧисло>
4:<конецАнализа> ::= tk=<вещественноеЧисло>
5:<шаг> ::= h=<вещественноеЧисло>
6:<матрицаА> ::= A=<матрица>;
7:<векторX0> ::= x0=<матрица>;
8:<строкиМатрицы> ::= <строкиМатрицы><строкаМатрицы>;
9:<строкиМатрицы> ::= <строкиМатрицы><строкиМатрицы><строкаМатрицы>
10:<матрица> ::= [<строкиМатрицы>]
11:<матрица> ::= [<строкаМатрицы>]
12:<строкиМатрицы> ::= <строкиМатрицы><строкиМатрицы>
13:<строкиМатрицы> ::= <строкиМатрицы><строкаМатрицы>
14:<строкиМатрицы> ::= <строкаМатрицы>;
15:<строкаМатрицы> ::= <строкаМатрицы><вещественноеЧисло>
16:<массивыCразмерностью> ::= <размерность><массивы>
17:<массивы> ::= <матрицаА><векторX0>
18:<строкаМатрицы>::=<вещественноеЧисло>
19:<строкиМатрицы>::=<строкаМатрицы>
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
34 |
М.Ф.Степанов |

Создание распределенной системы решения задач
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Введем сокращения имен нетерминальных символов:
1:<Z> ::= <R><B>;<E>;<H>;
2:<R> ::= n=<целоеЧисло>;
3:<B> ::= t0=<вещественноеЧисло>
4:<E> ::= tk=<вещественноеЧисло>
5:<H> ::= h=<вещественноеЧисло>
6:<S> ::= A=<M>;
7:<X> ::= x0=<M>;
8:<C> ::= <C><c>;
9:<C> ::= <C><C><c>
10:<M> ::= [<C>]
11:<M> ::= [<c>]
12:<C> ::= <C><C>
13:<C> ::= <C><c>
14:<C> ::= <c>;
15:<c> ::= <c><вещественноеЧисло>
16:<R> ::= <r><D>
17:<D> ::= <S><X>
18:<c>::=<вещественноеЧисло>
19:<C>::=<c>
C учетом кодов лексем: |
|
Или, опустив уголковые скобки: |
1: <Z> ::= <R><B>2<E>2<H>2 |
|
1: Z ::= RB2E2H2 |
2: <R> ::= 1n542 |
|
2: R ::= 1n542 |
3: <B> ::= 1t053 |
|
3: B ::= 1t053 |
4: <E> ::= 1tk53 |
|
4: E ::= 1tk53 |
5: <H> ::= 1h53 |
|
5: H ::= 1h53 |
6: <S> ::= 1A5<M>2 |
|
6: S ::= 1A5M2 |
7: <X> ::= 1x05<M>2 |
|
7: X ::= 1x05M2 |
8: <C> ::= <C><c>2 |
|
8: C ::= Cc2 |
9: <C> ::= <C><C><c> |
|
9: C ::= CCc |
10: <M> ::= 6<C>7 |
|
10: M ::= 6C7 |
11: <M> ::= 6<c>7 |
|
11: M ::= 6c7 |
12: <C> ::= <C><C> |
|
12: C ::= CC |
13: <C> ::= <C><c> |
|
13: C ::= Cc |
14: <C> ::= <c>2 |
|
14: C ::= c2 |
15: <c> ::= <c>3 |
|
15: c ::= c3 |
16: <R> ::= <r><D> |
|
16: R ::= rD |
17: <D> ::= <S><X> |
|
17: D ::= SX |
18: <c> ::= 3 |
|
18: c ::= 3 |
19: <C> ::= <c> |
|
19: C ::= c |
Таким образом, словарь терминальных символов (лексем) на этапе синтаксического анализа включает 12 символов:
VT={n|t0|tk|h|A|x0|;|вч|цч|=|[|]}
или, с учетом кодов лексем: VT={1n|1t0|1tk|1h|1A|1x0|2|3|4|5|6|7}.
Словарь нетерминальных символов включает 12 символов: VH={Z|R|D|r|B|E|H|S|M|C|c|X}
В словарь добавим терминальные символы н и к (начало и конец цепочки), введя для них коды лексем 0 и 8 соответственно.
Следовательно, матрица предшествования будет иметь размер 25×25. Рассмотрим процесс ее построения на примере строки для
терминального символа "n"
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Методические указания к выполнению курсовой работы |
35 |
|
Системное программное обеспечение
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Символ "n" должен стоять слева от символов "=" "<целоеЧисло>" ";" в одном предложении. Следовательно, в строке, помеченной символом "n", на пересечении со столбцами, помеченными символами "=" "<целоеЧисло>" ";" поставим знак "=." ("составляет основу").
Символ "n" должен стоять слева от нетерминального символа <массивы> в правиле
<массивыCразмерностью>::=<размерность><массивы>.
В силу вхождения в первое правило грамматики символ "n" не может находиться правее любого символа грамматики. Поэтому построение матрицы для него закончено.
Матрица предшествования для рассмотренной грамматики приведена в таблице 4.
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
36 |
М.Ф.Степанов |
Создание распределенной системы решения задач
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
|
|
|
|
|
|
|
|
|
|
Матрица предшествования |
|
|
|
|
|
|
Таблица 4 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
Сим. |
1A |
1h |
1n |
1t0 |
1tk |
1x0 |
2; |
3вч |
4цч |
|
5= |
6[ |
7] |
Z |
R |
D |
r |
B |
E |
H |
S |
M |
C |
c |
X |
8 к |
0 н |
|
|
<. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=. |
1A |
|
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1h |
|
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1n |
|
|
|
|
|
|
=. |
|
=. |
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1t0 |
|
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1tk |
|
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1x0 |
|
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2; |
>. |
=. |
|
>. |
=. |
>. |
=. |
>. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>. |
3вч |
|
|
|
|
|
|
>. |
>. |
|
|
|
|
>. |
|
|
|
|
|
|
|
|
|
|
|
|
|
4цч |
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5= |
|
|
|
|
|
|
=. |
=. |
=. |
|
|
=. |
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
6[ |
|
|
|
|
|
|
|
=. |
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
=. |
|
|
|
7] |
|
|
|
|
|
|
>. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Z |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>. |
R |
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
D |
|
|
|
>. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
E |
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
=. |
|
|
|
|
|
|
H |
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>. |
S |
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
M |
|
|
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
|
|
|
|
|
|
=. |
|
|
|
|
=. |
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
|
|
|
|
|
|
=. |
=. |
|
|
|
|
>. |
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
>. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Методические указания к выполнению курсовой работы |
37 |
|

Системное программное обеспечение
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
2.10.4. Пример выполнения разбора предложений входного языка.
Синтаксический разбор осуществляет МП-автомат с одним состоянием <E>. Для иллюстрации работы МП-автомата будем записывать каждую его конфигурацию в виде трех составляющих {α|β|γ}, где
¾- непрочитанная часть входной цепочки;
¾- содержимое стека МП-автомата;
¾- последовательность номеров примененных правил.
Вначальном состоянии вся входная цепочка не прочитана, стек автомата содержит только лексему типа "начало входной цепочки", последовательность номеров правил пуста.
Пусть, например, входная цепочка имеет вид:
n=3;A=[0 1 0; 0 0 1; -1,5 -2,6 -3,7];x0=[-1,9;0;0];t0=-1,1;tk=+10,5;h=0,01;
Таблица 5
Множество лексем цепочки
№ |
Лексема |
Тип |
№ |
Лексема |
Тип |
№ |
Лексема |
Тип |
№ |
Лексема |
Тип |
№ |
Лексема |
Тип |
1 |
n |
1 |
10 |
0 |
3 |
19 |
] |
7 |
28 |
0 |
3 |
37 |
+10,5 |
3 |
2 |
= |
5 |
11 |
; |
2 |
20 |
; |
2 |
29 |
] |
7 |
38 |
; |
2 |
3 |
3 |
4 |
12 |
0 |
3 |
21 |
x0 |
1 |
30 |
; |
2 |
39 |
h |
1 |
4 |
; |
2 |
13 |
0 |
3 |
22 |
= |
5 |
31 |
t0 |
1 |
40 |
= |
5 |
5 |
A |
1 |
14 |
1 |
3 |
23 |
[ |
6 |
32 |
= |
5 |
41 |
0,01 |
3 |
6 |
= |
5 |
15 |
; |
2 |
24 |
-1,9 |
3 |
33 |
-1,1 |
3 |
42 |
; |
2 |
7 |
[ |
6 |
16 |
-1,5 |
3 |
25 |
; |
2 |
34 |
; |
2 |
43 |
|
|
8 |
0 |
3 |
17 |
-2,6 |
3 |
26 |
0 |
3 |
35 |
tk |
1 |
44 |
|
|
9 |
1 |
3 |
18 |
-3,7 |
3 |
27 |
; |
2 |
36 |
= |
5 |
45 |
|
|
Поскольку лексический анализ успешно выполнен, то вместо лексем входной цепочки будем рассматривать коды лексем. Идентификаторы к тому же будем условно сопровождать еще и текстом лексемы в целях обеспечения однозначности выбора правила грамматики для свертки. На самом деле текст лексемы, конечно же, будет при анализе выбираться из множества лексем, равно как и тип лексемы.
|
|
|
Таблица 6 |
|
Типы лексем |
||
Тип |
Лексема |
Тип |
Лексема |
0 |
начало цепочки н |
1 |
имя (идентификатор) |
2 |
разделитель ";" |
3 |
вещественное число |
4 |
целое число |
5 |
знак операции присваивания "=" |
6 |
открывающаяся [ скобка |
7 |
закрывающаяся ] скобка |
8 |
конец цепочки к |
|
|
Тогда указанное условное представление входной цепочки примет
вид:
1n5421A5633323332333721x05632323721t05321tk5321h5328
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
38 |
М.Ф.Степанов |

Создание распределенной системы решения задач
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
При этом следует иметь в виду, что при переносе и свертке идентификатор рассматривается в совокупности как пара (код лексемы – текст лексемы) и обрабатывается совместно.
Разбор входной цепочки – протокол выполнения синтаксического анализа (заключительный фрагмент протокола работы синтаксического анализатора приведен на рисунке 14):
шаг анализа = 0
цепочка = '1n5421A5633323332333721x05632323721t05321tk5321h5328'
стек = '0_' |
|
правила = '' |
|
шаг анализа = 1 |
==> сдвиг (перенос): |
цепочка = '5421A5633323332333721x05632323721t05321tk5321h5328'
стек = '0_1n' |
|
правила = '' |
|
шаг анализа = 2 |
==> сдвиг (перенос): |
цепочка = '421A5633323332333721x05632323721t05321tk5321h5328'
стек = '0_1n5' |
|
правила = '' |
|
шаг анализа = 3 |
==> сдвиг (перенос): |
цепочка = '21A5633323332333721x05632323721t05321tk5321h5328'
стек = '0_1n54' |
|
правила = '' |
|
шаг анализа = 4 |
==> сдвиг (перенос): |
цепочка = '1A5633323332333721x05632323721t05321tk5321h5328'
стек = '0_1n542' |
|
правила = '' |
|
шаг анализа = 5 |
==> свёртка: |
Применено правило с правой частью = '1n542'
цепочка = '1A5633323332333721x05632323721t05321tk5321h5328'
стек = '0_r' |
|
правила = '2' |
|
шаг анализа = 6 |
==> сдвиг (перенос): |
цепочка = '5633323332333721x05632323721t05321tk5321h5328'
стек = '0_r1A' |
|
правила = '2' |
|
шаг анализа = 7 |
==> сдвиг (перенос): |
цепочка = '633323332333721x05632323721t05321tk5321h5328'
стек = '0_r1A5' |
|
правила = '2' |
|
шаг анализа = 8 |
==> сдвиг (перенос): |
цепочка = '33323332333721x05632323721t05321tk5321h5328'
стек = '0_r1A56' |
|
правила = '2' |
|
шаг анализа = 9 |
==> сдвиг (перенос): |
цепочка = '3323332333721x05632323721t05321tk5321h5328' стек = '0_r1A563'
правила = '2' шаг анализа = 10 ==> свёртка:
Применено правило с правой частью = '3'
цепочка = '3323332333721x05632323721t05321tk5321h5328' стек = '0_r1A56c'
правила = '2,18' шаг анализа = 11 ==> сдвиг (перенос):
цепочка = '323332333721x05632323721t05321tk5321h5328' стек = '0_r1A56c3'
правила = '2,18' шаг анализа = 12 ==> свёртка:
Применено правило с правой частью = 'c3'
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Методические указания к выполнению курсовой работы |
39 |
|

Системное программное обеспечение
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
цепочка = '323332333721x05632323721t05321tk5321h5328' стек = '0_r1A56c'
правила = '2,18,15'
шаг анализа = 13 ==> сдвиг (перенос):
цепочка = '23332333721x05632323721t05321tk5321h5328' стек = '0_r1A56c3'
правила = '2,18,15'
шаг анализа = 14 ==> свёртка: Применено правило с правой частью = 'c3'
цепочка = '23332333721x05632323721t05321tk5321h5328' стек = '0_r1A56c'
правила = '2,18,15,15'
шаг анализа = 15 ==> сдвиг (перенос):
цепочка = '3332333721x05632323721t05321tk5321h5328' стек = '0_r1A56c2'
правила = '2,18,15,15'
шаг анализа = 16 ==> свёртка: Применено правило с правой частью = 'c2'
цепочка = '3332333721x05632323721t05321tk5321h5328' стек = '0_r1A56C'
правила = '2,18,15,15,14'
шаг анализа = 17 ==> сдвиг (перенос):
цепочка = '332333721x05632323721t05321tk5321h5328' стек = '0_r1A56C3'
правила = '2,18,15,15,14'
шаг анализа = 18 ==> свёртка: Применено правило с правой частью = '3'
цепочка = '332333721x05632323721t05321tk5321h5328' стек = '0_r1A56Cc'
правила = '2,18,15,15,14,18'
шаг анализа = 19 ==> сдвиг (перенос):
цепочка = '32333721x05632323721t05321tk5321h5328' стек = '0_r1A56Cc3'
правила = '2,18,15,15,14,18'
шаг анализа = 20 ==> свёртка: Применено правило с правой частью = 'Cc3'
цепочка = '32333721x05632323721t05321tk5321h5328' стек = '0_r1A56C'
правила = '2,18,15,15,14,18,12'
шаг анализа = 21 ==> сдвиг (перенос):
цепочка = '2333721x05632323721t05321tk5321h5328' стек = '0_r1A56C3'
правила = '2,18,15,15,14,18,12'
шаг анализа = 22 ==> свёртка: Применено правило с правой частью = '3'
цепочка = '2333721x05632323721t05321tk5321h5328' стек = '0_r1A56Cc'
правила = '2,18,15,15,14,18,12,18'
шаг анализа = 23 ==> сдвиг (перенос):
цепочка = '333721x05632323721t05321tk5321h5328' стек = '0_r1A56Cc2'
правила = '2,18,15,15,14,18,12,18'
шаг анализа = 24 ==> свёртка: Применено правило с правой частью = 'c2'
цепочка = '333721x05632323721t05321tk5321h5328' стек = '0_r1A56CC'
правила = '2,18,15,15,14,18,12,18,14'
шаг анализа = 25 ==> сдвиг (перенос):
цепочка = '33721x05632323721t05321tk5321h5328' стек = '0_r1A56CC3'
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
40 |
М.Ф.Степанов |