
- •4. Обратная польская запись операций
- •5. Заполнение таблицы идентификаторов методом цепочек (хэш адресация методом цепочек)
- •6. Заполнение таблицы идентификаторов методом рехеширования с помощью произведения
- •7. Цепочки вывода и дерево вывода
- •8. Преобразование конечного автомата (ка) в детерминированный конечный автомат (дка)
- •9. Дерево вывода и цепочка вывода, построенные на основе входной цепочки. Преобразование дерева синтаксического обзора в дерево операций
9. Дерево вывода и цепочка вывода, построенные на основе входной цепочки. Преобразование дерева синтаксического обзора в дерево операций
Входная цепочка a+(b-a) – МПА автомат
P: F→F+F1|F-F2
F→F*F3|F/F4
F→(F)5|a6|b7
|
+ |
- |
* |
/ |
( |
) |
a |
b |
|
+ |
.> |
.> |
<. |
<. |
<. |
.> |
<. |
<. |
.> |
- |
.> |
.> |
<. |
<. |
<. |
.> |
<. |
<. |
.> |
* |
.> |
.> |
.> |
.> |
<. |
.> |
<. |
<. |
.> |
/ |
.> |
.> |
.> |
.> |
<. |
.> |
<. |
<. |
.> |
( |
<. |
<. |
<. |
<. |
<. |
=. |
<. |
<. |
|
) |
.> |
.> |
.> |
.> |
|
.> |
|
|
.> |
a |
.> |
.> |
.> |
.> |
|
.> |
|
|
.> |
b |
.> |
.> |
.> |
.> |
|
.> |
|
|
.> |
|
<. |
<. |
<. |
<. |
<. |
|
<. |
<. |
|
<. =. сдвиг
>. свертка
символ до точки с запятой ищем в строке, после точки запятой ищем в столбце
1.
{a+(b-a)
к;
н;Ø}÷сд
2. {+(b-a) к; нa;Ø}÷св
3. {+(b-a) к; нF;6}÷сд
4. {(b-a) к; нF+;6}÷сд
5. {b-a) к; нF+(;6}÷сд
6. {-a) к; нF+(b;6}÷св
7. {-a) к; нF+(F;6,7}÷сд
8. {a) к; нF+(F-;6,7}÷сд
9. {) к; нF+(F-a;6,7}÷св
10. {) к; нF+(F-F;6,7,6}÷св
11. {) к; нF+(F;6,7,6,2}÷сд
12. { к; нF+(F);6,7,6,2}÷св
13. { к; нF+F;6,7,6,2,5}÷св
14. { к; нF;6,7,6,2,5,1}
Разбор закончен. Цепочка принята.
Цепочка
вывода:
F
F+F
F+(F)
F+(F-F)
F+(F-a)
F+(b-a)
a+(b-a)
Дерево вывода (синтаксическое дерево):
Процесс построения дерева операций разбора: