- •Отчет по курсовой работе
- •Раздел 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.
Раздел 5.
«АЛГОРИТМ РАЗБОРА ДЛЯ LL(1)-ГРАММАТИК»
Задание 5.2.7. Построить управляющую таблицу и промоделировать работу LL(1)-анализатора для КС-грамматики G = < T, N, S, R >.
T = { a, b, c }, N = { S, A, B },
R = {S → aAB, S → bA, S → ε, A → aAb, A → ε, B → bB, B → c };
Управляющая таблица:
R = { S → aAB(1), S → bA(2), S → ε(3), A→ aAb(4), A → ε(5), B → bB(6), B → c(7) };
|
a |
b |
с |
ε |
S |
aAB, 1 |
bA, 2 |
|
ε, 3 |
A |
aAb, 4 |
ε, 5 |
|
ε, 5 |
B |
|
bB, 6 |
c, 7 |
|
a |
Выброс |
|
|
|
b |
|
Выброс |
|
|
c |
|
|
Выброс |
|
⊥ |
|
|
|
Допуск |
Пример разбора цепочки (aaabbbc), порождаемой заданной LL(1)-грамматикой, с помощью разработанного алгоритма:
(aaabbbc, S , ε) →
(aaabbbc, aAB , 1) →
(aabbbc, AB , 1) →
(aabbbc, aAbB , 14) →
(abbbc, AbB , 14) →
(abbbc, aAbbB , 144) →
(bbbc, AbbB , 1445) →
(bbbc, bbB , 1445) →
(bbc, bB , 1445) →
(bc, B , 1445) →
(bc, bB , 14456) →
(c, B , 144567) → ДОПУСК