
- •2. Операционная система
- •3. Системы программирования
- •4. Таблица идентификаторов.
- •5. Кэш адресация
- •6. Формальные языки и грамматики.
- •7. Понятие языка
- •8. Запись грамматики в форме Бэкуса-Наура.
- •9. Запись правил грамматики с использованием метасимволов.
- •10. Запись правил грамматики в графическом виде
- •11. Классификация грамматик
- •12. Классификация языков.
- •14. Цепочка вывода
- •15. Дерево вывода
- •16. Правила задающие неоднозначность грамматик
- •17. Распознаватель
- •18. Задача разбора
- •19. Этапы семантического анализа
- •20. Распознаватели регулярных языков.
- •21. Граф переходов конечного автомата
- •22. Способы задания регулярных языков
- •23. Назначение лексических анализаторов
- •24. Контекстно-свободные языки и грамматики
- •25. Распознаватели кс языков
- •26. Распознаватели кс языков с возвратом.
- •27. Нисходящий распознаватель с возвратом
- •28. Принципы работы восходящего распознавателя
- •29. Распознаватели кс языков без возврата
- •30. Распознаватель на основе грамматик
- •31. Свойства кс языков
- •32. Назначение синтаксических анализаторов.
- •33. Дерево операций.
- •35. Общие принципы оптимизации кода.
5. Кэш адресация
Согласно данному методу символ преобразуются в индекс элемента в массиве.
Кэширование — выполнение любых логических или арифметических операций над символом.
КЭШ адресация заключается в использовании значения возвращаемого КЭШ-функцией в качестве адреса ячейки из некоторого массива данных.
Размер массива данных должен соответствовать области значения КЭШ-функции.
Достоинства – эффективен, т.к. время поиска и время размещения — определяется только временем, затрачиваемым на вычисление КЭШ-функции.
Недостатки:
1) неэффективное использование объема памяти;
2) необходимость соответствующего разумного выбора КЭШ функции.
Коллизия— это ситуация, когда двум различным идентификаторам соответствует одно и то же значение КЭШ функции.
Способы разрешения коллизии (рекэширование).При возникновении коллизии вычисляется новое значение КЭШ-функции.
Формула рекэширования
hi(A)=(h(A)+pi)modNm,
Nm - максимальное значение из области кэширования,
pi – некоторое вычисл. целое число
А – идентификатор
h(A) – КЭШ-функция
hi(A) – новая КЭШ-функция
Метод простого рекэширования hi(A)=(h(A)+i)modNm (вместо pi берем i)
(+) эффективен при неполном заполнении таблицы
(-) при совпадении КЭШ-адресов элементы в таблице начинают группироваться вокруг них, что
увеличивает число необходимых сравнений при поиске и размещении
Рекэширование с использованием псевдослучайных чисел (вместо pi берем последовательность целых псевдослучайных чисел р1, р2,р3…рn).
Метод цепочек
Здесь к ТИ добавляется дополненная КЭШ-таблица, в которой хранится либо пустое значение, либо значение указателя на некоторую область памяти из основной ТИ.
Достоинства:
1) нет необходимости заполнять пустыми значениями ТИ;
2) каждому идентификатору соответствует строго одна ячейка в ТИ, поскольку в ней нет пустых неиспользуемых ячеек.
В ТИ добавляется поле ссылки, в котором может содержаться указатель на любой элемент ТИ.
используется специальная переменная, которая всегда указывает на первую свободную ячейку основной ТИ.
Комбинированные методы. Используется дополнительное поле ссылки:
если коллизии не возникает, для выборки информации используется КЭШ-функция и поле ссылки остается пустым. если коллизия возникает, то через поле ссылки организуется поиск идентификаторов по одному из рассмотренных выше методов.
(+) Преимущество над цепочками: для хранения идентификаторов с совпадающими значениями КЭШ-функции используется область памяти не пересекающаяся с основной ТИ.
(-) Недостаток: необходимость работы с динамически распределенными областями памяти.
6. Формальные языки и грамматики.
Цепочки символов (строка) и операции над ними.
Цепочки символов — это произвольная последовательность символов, записанных один за другим.
Для ЦС важен состав, количество символов и порядок.
ЦС α и β равны α=β или совпадают, если они имеют один и тот же состав символов, одно и то же их количество, одинаковый порядок следования символов в цепочке.
Количество символов в цепочке называется длиной цепочки.
ЦС обладают следующими свойствами:
1. Конкатенация — объединение или сложение 2-х цепочек αβ
α=“BA”
β=“CL” => αβ=“BACL”
Операция конкатенации не обладает свойством коммут-ти αβ≠βα.
Обладает свойством ассоциативности (αβ)γ=α(βγ)
2. Обращение цепочки — запись символов цепочки в обратном порядке αR, α=“ВАСЯ” => αR=“ЯСАВ”
Для данной операции справедливо (αβ)R=αRβR
3. Итерация — повторение цепочки n раз
4.Пустая цепочка символов — это цепочка, не содержащая ни одного символа — λ для пустой цепочки справедливо:
1) |λ|=0;
2) для любого α: λα=αλ=α;
3) λR=λ;
4) для любого n≥0:λn=λ;
5) для любого α: α0=λ