- •Отчет по курсовой работе
- •Раздел 2.
- •2.1. Общие сведения
- •2.2. Задания
- •2.2.1. Исключение бесполезных символов
- •2.2.3. Исключение цепных правил
- •2) Новое множество правил вывода:
- •2.2.4. Исключение левой рекурсии
- •Раздел 4.
- •4.2. Задания
- •4.2.1. Построение детерминированного автомата с магазинной памятью
- •4.2.2. Построение детерминированного преобразователя с магазинной памятью.
- •4.2.3. Построение недетерминированного мп-автомата по кс-грамматике
- •4.2.4. Построение недетерминированного расширенного мп-автомата по кс-грамматике
- •Раздел 6.
- •Раздел 7
- •Раздел 1.
- •Раздел 5.
Раздел 7
АЛГОРИТМ РАЗБОРА ТИПА "ПЕРЕНОС-СВЕРТКА
Задание 7.1. Построить анализатор типа "перенос-свертка" и промоделировать его работу для следующей грамматики простого предшествования G = < T, N, S, R >, где T = { *, i, (, ), = }, N = { S, L, R }, R = { S → L=R, S → R, L → *R, L → i, R → (L)}.
Построим матрицу простого предшествования
|
S |
L |
R |
* |
i |
( |
) |
= |
ε |
S |
|
|
|
|
|
|
|
|
|
L |
|
|
|
|
|
|
= |
= |
|
R |
|
|
|
|
|
|
> |
> |
> |
* |
|
|
= |
|
|
< |
|
|
|
i |
|
|
|
|
|
|
> |
> |
|
( |
|
= |
|
< |
< |
|
|
|
|
) |
|
|
|
|
|
|
> |
> |
> |
= |
|
|
= |
|
|
< |
|
|
|
⊥ |
|
< |
< |
< |
< |
< |
|
|
|
Построим функцию переноса f
|
* |
i |
( |
) |
= |
ε |
S |
|
|
|
|
|
|
L |
|
|
|
П |
П |
|
R |
|
|
|
С |
С |
С |
* |
|
|
П |
|
|
|
i |
|
|
|
С |
С |
|
( |
П |
П |
|
|
|
|
) |
|
|
|
C |
C |
С |
= |
|
|
П |
|
|
|
⊥ |
П |
П |
П |
|
|
|
S⊥ |
|
|
|
|
|
Д |
Построим функцию свертки g
α |
g(α) |
|
⊥ |
L=R |
1 |
⊥ |
R |
2 |
( |
*R |
3 |
⊥ |
*R |
3 |
( |
i |
4 |
⊥ |
i |
4 |
* |
(L) |
5 |
= |
(L) |
5 |
⊥ |
(L) |
5 |
Пример разбора цепочки, порождаемой заданной грамматикой предшествования, с помощью разработанного алгоритма.
(⊥, (*(i)), ɛ) →
(⊥(, *(i)), ɛ) →
(⊥(*, (i)), ɛ) →
(⊥(*(, i)), ɛ) →
(⊥(*(i, )), ɛ) →
(⊥(*(L, )), 4) →
(⊥(*(L), ), 4) →
(⊥(*R, ), 45) →
(⊥(L, ), 453) →
(⊥(L), , 453) →
(⊥R, ɛ, 4535) →
(⊥S, ɛ, 45352) →ДОПУСК