- •Вопрос 1
 - •Определение 1.3. Цепочка, которая не содержит ни одного символа, называется пустой цепочкой и обозначается .
 - •Определение 1.13. Цепочка , для которой существует вывод s*, называется сентенциальной формой или сентенцией в грамматике .
 - •Вопрос 2
 - •Вопрос 3
 - •Расширение допускает единственное -правило вида s, но в этом случае начальный символ грамматики s не должен встречаться в правых частях правил.
 - •Вопрос 4
 - •3.1.2 Дерево разбора
 - •Вопрос 5
 - •Вопрос 6
 - •Вопрос 7
 - •Вопрос 8
 - •Существуют следующие три способа представления функции переходов.
 - •Вопрос 9 Алгоритм 2.4. Построение ка по регулярной грамматике.
 - •Выход: ка .
 - •Вопрос 10
 - •Алгоритм 2.1. Преобразование нка в дка.
 - •Вопрос 11
 - •Алгоритм 2.2. Устранение недостижимых состояний ка.
 - •Алгоритм 2.3. Объединение эквивалентных состояний ка.
 - •Вопрос12
 - •3.2.1 Проверка существования языка грамматики
 - •3.2.2 Удаление бесполезных символов грамматики
 - •Алгоритм 3.2. Устранение нетерминалов, не порождающих терминальных строк. Вход: кс-грамматика .
 - •Алгоритм 3.3. Устранение недостижимых символов грамматики. Вход: кс-грамматика .
 - •Определим множество достижимых символов z грамматики g, т.Е. Множество:
 - •Вопрос13
 - •3.2.3 Устранение -правил грамматики Алгоритм 3.4. Устранение -правил. Вход: кс-грамматика .
 - •3.2.4 Устранение цепных правил Алгоритм 3.5. Устранение цепных правил. Вход: кс-грамматика .
 - •Вопрос 14 Алгоритм 3.6. Устранение левой факторизации правил. Вход: кс-грамматика .
 - •Алгоритм 3.7. Устранение прямой левой рекурсии. Вход: кс-грамматика .
 - •Вопрос 15
 - •Вопрос 16 Алгоритм 3.9. Построение мп-автомата по кс-грамматике.
 - •Вопрос 17
 - •Вопрос 18
 - •18. 3.4.1 Рекурсивный спуск
 - •Теорема 3.1. Достаточные условия применимости метода рекурсивного спуска.
 - •Вопрос 19
 - •Вопрос 20
 - •Вопрос 21
 - •21. Функционирование распознавателя цепочек для ll(1)-грамматик.
 - •Вопрос 22
 - •Вопрос 23 Алгоритм 3.16. Построение множеств l(a) и r(a).
 - •Вопрос 24
 - •Вопрос 26
 - •Вопрос 27
 - •Вопрос28
 - •Вопрос 29
 - •Вопрос 30
 - •Вопрос 31
 - •Вопрос 32. Определение 4.1. Транслятор – это программа, которая переводит входную программу на исходном (входном) языке в эквивалентную ей выходную программу на результирующем (выходном) языке.
 - •Вопрос 33 Общая схема работы компилятора
 - •Вопрос 34 ЛекАнализ программы
 - •Вопрос 35
 - •Вопрос 36
 - •Вопрос 37
 - •Вопрос 38
 - •Вопрос 39
 - •Вопрос 40
 - •Вопрос 41 Свертка объектного кода программы.
 - •Вопрос 42
 - •Вопрос 43
 - •Вопрос 44
 - •Вопрос 45 Схемы компиляции
 - •Вопрос 46
 - •Вопрос 47
 - •Вопрос 48
 - •Вопрос 49
 - •Вопрос 50
 
Вопрос12
3.2.1 Проверка существования языка грамматики
Алгоритм 3.1. Проверка существования языка грамматики.
Вход: КС-грамматика .
Выход: заключение о существовании или отсутствии языка грамматики.
Определим множество
нетерминалов, порождающих терминальные
строки 
.
Шаг 1. Положить N0=Ø.
Шаг 2. Вычислить 
и 
Шаг 3. Если 
,
то положить i:=i+1
и перейти к пункту 2, иначе считать 
.
Если 
,
то выдать сообщение о том, что язык
грамматики существует, иначе сообщить
об отсутствии языка.
Конец алгоритма.
Пример 3.4. Дана
грамматика 
,
где множество правил P:
.
Построим последовательность приближений
множества N:
N0 = Ø;
N1 = {A, B};
N2 = {S, A, B};
N3 = {S, A, B}.
Т.к. N2=N3,
то N
= {S,
A,
B},
следовательно, язык грамматики существует,
потому что начальный символ 
.
3.2.2 Удаление бесполезных символов грамматики
Определение 3.7. Бесполезными символами грамматики называют:
а) нетерминалы, не порождающие терминальных строк, т.е. множество символов вида:
                                                   
б) недостижимые нетерминалы, порождающие терминальные строки, т.е. множество символов вида:
         
в) недостижимые терминалы, т.е. множество символов вида:
                                          
Алгоритм 3.2. Устранение нетерминалов, не порождающих терминальных строк. Вход: кс-грамматика .
Выход: КС-грамматика
,
такая, что 
и для всех 
существуют выводы 
,
где 
.
Шаг 1. Определить множество нетерминалов, порождающих терминальные строки, с помощью алгоритма 3.1.
Шаг 2. Вычислить 
,
где 
- это множество правил, содержащих
бесполезные нетерминалы 
.
Конец алгоритма.
Пример 3.5. Дана
грамматика 
с правилами P:
 
Преобразуем ее в эквивалентную грамматику G’ по алгоритму 3.2:
N0 = Ø;
N1 = {S, B, C};
N2 = {S, B, C}.
Т.к.
N1
=
N2,
то
N
= {S,
B,
C}.
После
удаления бесполезных нетерминалов и
правил вывода, получим грамматику 
с правилами 
Алгоритм 3.3. Устранение недостижимых символов грамматики. Вход: кс-грамматика .
Выход: КС-грамматика
,
такая, что 
и для всех 
существует вывод 
,
где 
.
Определим множество достижимых символов z грамматики g, т.Е. Множество:
Шаг 1. Положить 
Шаг 2. Вычислить очередное приближение следующим образом:
             
Шаг 3. Если 
то положить i:=i+1
и перейти к шагу 2, иначе считать 
.
Шаг 4. Вычислить 
,
где 
- это множество правил, содержащих
недостижимые символы 
.
Конец алгоритма.
Пример 3.6. Дана
грамматика
с правилами P’:
Преобразуем ее в эквивалентную грамматику G’ по алгоритму 3.3:
W0 = {S};
W1 = {S, a, b};
W2 = {S, a, b}.
Т.к. W1=W2,
то W={S,
a,
b}.
Множество недостижимых символов 
Тогда после удаления недостижимых
символов, получим грамматику 
с правилом P’:
Вопрос13
3.2.3 Устранение -правил грамматики Алгоритм 3.4. Устранение -правил. Вход: кс-грамматика .
Выход: Эквивалентная
КС-грамматика 
без -правил
для всех нетерминальных символов, кроме
начального, который в этом случае не
должен встречаться в правых частях
правил грамматики.
Шаг 1. В исходной
грамматике G
найти -порождающие
нетерминальные символы 
,
такие что 
.
Положить
.Вычислить
.Если
,
		то положить i:=i+1
		и перейти к пункту 1.2, иначе считать 
		
.
Шаг 2. Из множества
P
правил исходной грамматики G
перенести во множество P’
все правила, за исключением -правил,
т.е. 
для
всех 
Шаг 3. Пополнить множество P’ правилами, которые получаются из каждого правила этого множества путем исключения всевозможных комбинаций -порождающих нетерминалов в правой части. Полученные при этом -правила во множество P’ не включать.
Шаг 4. Если 
,
то 
,
где 
;
иначе 
Конец алгоритма.
Пример 3.7.
Дана грамматика 
с правилами P:
.
Преобразуем ее в эквивалентную грамматику
по алгоритму 3.4.
Шаг 1. N0 = {A, B}; N1 = {S, A, B}; N2 = {S, A, B}.
Т.к. N1 = N2, то искомое множество построено и N = {S, A, B}.
Шаг 2, 3. МножествоP’
1) 
;
2) 
;
3) 
Шаг 4. Т.к. 
,
то введем новый нетерминал С
и пополним множество  P’правилом
вида 
.
Результирующая грамматика будет иметь
вид: 
с правилами:
P’:
.
