- •1. Операции над языками. Регулярные выражения.
- •4) Положительное замыкание Клини (без пустой строки):
- •2. Недетерминированный конечный автомат: формальное определение, построение множества достижимых состояний.
- •3. Преобразование регулярных выражений в недетерминированный конечный автомат
- •4. Преобразование недетерминированного конечного автомата в детерминированный.
- •5. Минимизация детерминированного конечного автомата.
- •6. Контекстно-свободные языки. Вывод. Дерево вывода.
- •7. Контекстно-свободные грамматики для регулярных языков.
- •9. Исключение левой рекурсии.
- •8. Метод грамматического разбора сверху - вниз. Ll(1) – грамматики.
- •10. Левая факторизация.
- •11. Построение множества first
- •12. Построение множества follow
- •14. Построение таблицы разбора для ll(1) – грамматики
- •15. Алгоритм работы таблично управляемого анализатора для ll(1) – грамматики.
- •16. Грамматики простого предшествования. Использование отношения предшествования операторов
- •17. Построение отношения предшествования операторов исходя из их ассоциативности и приоритета. Алгоритм разбора для грамматик простого предшествования.
- •18. Синтаксический анализ снизу – вверх. Основа. Подрезка основы.
- •19. Разбор методом «сдвиг – свертка» (shift – reduce) на основе стека.
- •20. Активный префикс. Обосновать, что основа всегда формируется в вершине стека.
- •22. Алгоритм вычисления замыкания множества ситуаций (Closure).
- •23. Каноническая совокупность множеств ситуаций.
- •24. Переходы в slr (1) анализаторе. Функция goto. Допустимая ситуация.
- •25. Алгоритм заполнения таблиц разбора для slr (1) анализатора.
- •26. Алгоритм lr – разбора.
- •33. Контекстно–зависимый анализ. Синтаксически управляемая трансляция.
- •34. Синтезируемые атрибуты. Их обработка в алгоритме сдвиг–свертка.
- •35. Построение абстрактного синтаксического дерева.
- •36. Наследуемые атрибуты. Граф зависимостей.
- •42. Генератор компиляторов уасс. Использование неоднозначных грамматик.
- •43. Автомат с магазинной памятью. Графическое представление автомата с магазинной памятью. Вычислительный процесс в мп – автомате.
- •44. Автомат с магазинной памятью. Допустимость по заключительному состоянию и по пустому магазину.
- •35. Типы и проверка типов.
- •27. Lr(1) анализ. Lr(1)-ситуация. Замыкание множества ситуаций. Определение переходов.
- •30. Lr(1) анализ. Заполнение таблиц lr-разбора
- •31. Lalr(1) – грамматики. Построение lalr(1) – таблиц разбора.
43. Автомат с магазинной памятью. Графическое представление автомата с магазинной памятью. Вычислительный процесс в мп – автомате.
Автомат с магазинной памятью – это недерменированный конечный автомат с έ-переходами и одним дополнением – магазин, в котором хранится цепочка “магазинных символов”. Магазинный автомат может обозревать символ на вершине магазина и совершать переход нм основе текущего состояния, входной символ и символ на вершине магазина. Он может выполнить спонтанный переход, используя έ в качестве входного символа. За один такт автомат совершает следующие действия: 1) прочитывает и пропускает входной символ. Если в качестве входа έ, то входные символы не пропускаются. Переходит в новое состояние, которое может и не отличаться от предыдущего 3) Заменяет символ на вершине магазина некоторой цепочкой. Цепочкой может быть έ, что соответствует снятию с вершины магазина, т.е магазин не измениться. Автомат может заменить магазинный символ на один или несколько.
Формально МП-автомат - это семёрка объектов <Q, Σ, Г, δ, q0, Z0, F> где Q - конечное множество состояний; Σ - конечное множество символов – алфавит; Г - конечное множество символов – алфавит магазина; δ - функция переходов, которая тройке аргументов (q,a,X), q ∈Q, a ∈ Σ, X ∈ Г, ставит в соответствие множество пар (p,γ), где p - новое состояние, γ – цепочка магазинных символов, заменяющая X на вершине магазина; q0 ∈Q - начальное состояние; Z0 – начальный символ магазина.
F - Множество финальных состояний.
Графическое представление автомата с магазинной памятью
Функцию δ заданную списком отследить сложно, поэтому составляют диаграмму переходов конечного автомата. Диаграммы имеют следующие свойства: 1) Вершина соответствует состояниям МП-автомата. 2) стрелка, отмеченная словом НАЧАЛО, указывает на начальное состояние, а обведенные двойным кружком состояния являются заключительными, как и у конечного автоматов. 3) Дуги соответствуют переходом МП-автомата в следующем смысле: Дуга, отмечаная a, X/α и ведущая из состояния q в состояние p, означает, что δ(q, a, X) содержит пару (p, α)(возможны и другие пары) Таким образом, отметка дуги показывает, какой входной символ используется, а также, что было и что будет на вершине магазина. Диаграмма не говорит лишь о том, какой магазинный символ является стартовым. По соглашению им будет Z0, если не оговаривается иное.
Вычислительным процессом МП-автомата называется конечная последовательность его конфигураций, каждая из которых (кроме первой) получается из предыдущей одним тактом работы автомата.
В процессе вычисления МП-автомат переходит от конфигурации к конфигурации в соответствии с входными символами (или έ), но в отличие от конечного автомата, о котором известно только его состояние, конфигурация МП-а включает как состояние, так и содержимое магазина. Поскольку магазин может быть очень большим, он часто является наиболее важной часть конфигурации. В качестве части конфигурации представляют непрочитанную часть входа. Конфигурация МП-а представляется тройкой (q,w,γ), где q-состояние, w- оставшаяся часть входа, γ – содержимое магазина. Эта тройка называется мгновенным описанием(МО). При вычислении используются пары МО, связи между которыми представляют переходы МП-а.
Определим отношение |- для автомата P, Предположим, что δ(q, a, X) содержит (p, α). Тогда для всех цепочек w из Σ* и β из Г* полагаем (q, aw, Xβ) |-(p, w, αβ). Этот переход отражает идею того, что прочитывая на входе символ а, который может быть έ, и заменяя X на вершине магазина цепочкой α, можно переходить из состояния q в состояние p. Когда МП-автомат P подразумевается, для представления нуля или нескольких переходов используется символ |-* Из этого следует индуктивное определение: Базис I |-* I для любого МО I; Индукция I |-* J, если существует некоторое МО K, удовлетворяющее I |- K и K |-*J. Таким образом I |-* J, если существует такая последовательность МО К1, К2, К3… Кn у которой I = K1, J = Kn и K1 |- Ki+1 для всех i=1,2.. n-1
Принципы вычисления: 1) Если последовательность (вычисление) является допустимой для МП автомата P(с точки зрения его определения), то вычисление, образованное путем дописывания одной и той же цепочки к концам входных цепочек всех его конфигураций, также допустимо. 2) Если вычисление допустимо для МП-а P, то вычисление некоторый суффикс выходной цепочки не прочитан, то вычисление, полученное путем удаления этого суффикса из входной цепочки каждой конфигурации, также допустимо. Данные, которые никогда не читаются МП-а, не влияют на его вычисления
