Темы лекций по курсу "Теория языков программирования и методов трансляции"

Тема 1. Классификация языков и грамматик по Хомскому.
Цепочки символов; определение языка; определение грамматики; компоненты грамматики; представление грамматики в форме Бэкуса-Наура; 4 типа грамматик по Хомскому.

Тема 2. Построение дерева вывода. Сентенциальная форма грамматики; Понятие вывода; цепочки вывода; 2 способа построения дерева вывода.

Тема 3. Регулярные языки и грамматики. Теория построения конечных автоматов на базе регулярных грамматик; Автоматные грамматики.

Тема 4. Распознаватели КС языков. Общие положения, Теория построения расширенных МП автоматов на базе КС грамматик; Конфигурация распознавателя КС языков.

Тема 5. Преобразование КС грамматик. Приведение грамматики к приведенному виду: Алгоритмы удаления бесплодных символов, недостижимых символов, λ правил и цепных правил.

Тема 6. Нисходящий распознаватель с подбором альтернатив для КС языков с возвратом. Алгоритм нисходящего распознавателя с описанием начальной и конечной конфигураций; ограничения на грамматики; пример работы алгоритма.

Тема 7. Восходящий распознаватель для КС языков с возвратом на основе алгоритма «сдвиг-свертка». Алгоритм восходящего распознавателя с описанием начальной и конечной конфигураций; ограничения на грамматики; пример работы алгоритма.

Тема 8. Нисходящий распознаватель без возвратов. Метод рекурсивного спуска. LL(1) грамматика. Общие сведения о построении распознавателей без возвратов; ограничения, накладываемые на грамматики которые использует метод рекурсивного спуска; определение LL(1) грамматик; построение множеств FIRST и FOLLOW; алгоритм разбора.

Тема 9. Табличные распознаватели для КС языков. Отличие табличных распознавателей от нисходящих и восходящих; Преимущества и недостатки табличных распознавателей; Алгоритма Кока-Янгера-Касами.

Тема 10. Грамматики предшествования. Описание грамматик простого и операторного предшествования; Алгоритмы разбора для грамматик простого и операторного предшествования.

Тема 11. Основные принципы построения трансляторов. Определение компилятора, транслятора; Сходства и различия; Общая схема работы; описание синтаксического разбора;

Тема 12. Принципы построения лексических анализаторов. Методы организации таблиц лексем и идентификаторов: простой, метод бинарных деревьев, хэш-функций; Построение дерева разбора синтаксических конструкций.

Тема 13. Семантический анализ. Определение, Назначение. Пример работы. Место в общей схеме работы интерпретатора; Обратная польская запись; Схемы СУ перевода.


Тема 14. Этапы создания интерпретатора.; пример построения простейшего интерпретатора. Выделение лексем, выделение идентификаторов, выделение и интерпретирование конструкций языка


Информацию о самом курсе можно посмотреть здесь: Теория языков программирования