
- •Лабораторные работы по курсу «Системное программное обеспечение»
- •9. Для ll(1) анализатора построить управляющую таблицу m
- •10. Аналитически написать правила вывода для цепочки ll(1) анализатора.
- •11. Реализовать управляющую таблицу m для lr(k) анализатора.
- •12. Построить множество lr(0)-таблиц не содержащих ε-правила.
- •14. Определить функции перехода g(X)
- •15. Определить функцию переноса-свертки f(u)
- •16. Для функции перехода g(X) и функции переноса-свертки f(u) спроектировать управляющую таблицу.
Московский авиационный институт
(национальный исследовательский университет)
Факультет «Прикладная математика и физика»
Лабораторные работы по курсу «Системное программное обеспечение»
9. Для LL(k) анализатора построить управляющую таблицу M
10. Аналитически написать правила вывода для цепочки LL(k) анализатора.
11. Реализовать управляющую таблицу M для LL(k) анализатора.
12. Построить множество LR(0)-таблиц не содержащих ε-правила.
13. Для LR(k) -грамматики
14. Определить функции перехода g(X)
15. Определить функцию переноса-свертки f(u)
16. Для функции перехода g(X) и функции переноса-свертки f(u) спроектировать управляющую таблицу
Студент: Помазуева Е.А.
Группа: 08-205
Руководитель: Семёнов А. С.
Оценка:
Дата:
Москва 2012
9. Для ll(1) анализатора построить управляющую таблицу m
Дана грамматика G(V, T, P, S):
V = {S, F, L},
T={i, * , :,(,)},
P = {S→(F: L), F→ L*, F→ i, L→F}
LL(1) – анализатор.
Управляющая
таблица.
|
i |
* |
: |
( |
) |
ɛ |
S |
|
|
|
(F:L),1 |
|
|
F |
{L*,2},{i,3} |
|
|
|
|
|
L |
F,4 |
|
|
|
|
|
i |
В |
|
|
|
|
|
* |
|
В |
|
|
|
|
: |
|
|
В |
|
|
|
( |
|
|
|
В |
|
|
) |
|
|
|
|
В |
|
|
|
|
|
|
|
Д |
Где В – выброс, Д – допуск.
10. Аналитически написать правила вывода для цепочки ll(1) анализатора.
Дана цепочка (i**:i**).
Текущая конфигурация: Значение М:
((i**:i**), S┴, ɛ) M(S, ( ) = ((F:L), 1)
˫ ((i**:i**), (F:L)┴, 1) M( (,( ) = ВЫБРОС
˫ (i**:i**), F:L)┴, 1) M(F, i) = (L*, 2)
˫ (i**:i**), L*:L)┴, 12) M(L, i) = (F, 4)
˫ (i**:i**), F*:L)┴, 124) M(F, i) = (L*, 2)
˫ (i**:i**), L**:L)┴, 1242) M(L, i) = (F, 4)
˫ (i**:i**), F**:L)┴, 12424) M(F, i) = (i, 3)
˫ (i**:i**), i**:L)┴, 124243) M(i, i) = ВЫБРОС
˫ (**:i**), **:L)┴, 124243) M(*, *) = ВЫБРОС
˫ (*:i**), *:L)┴, 124243) M(*, *) = ВЫБРОС
˫ (:i**), :L)┴, 124243) M(:, :) = ВЫБРОС
˫ (i**), L)┴, 124243) M(L, i) = (F, 4)
˫ (i**), F)┴, 1242434) M(F, i) = (L*, 2)
˫ (i**), L*)┴, 12424342) M(L, i) = (F, 4)
˫ (i**), F*)┴, 124243424) M(F, i) = (L*, 2)
˫ (i**), L**)┴, 1242434242) M(L, i) = (F, 4)
˫ (i**), F**)┴, 12424342424) M(F, i) = (i, 3)
˫ (i**), i**)┴, 12424342424) M(i, i) = ВЫБРОС
˫ (**), **)┴, 12424342424) M(*, *) = ВЫБРОС
˫ ( *), *)┴, 12424342424) M(*, *) = ВЫБРОС
˫ ( ), )┴, 12424342424) M( ), ) ) = ВЫБРОС
˫ ( ɛ, ┴, 12424342424) M(ɛ, ┴) = ДОПУСК