Этапы жизненного цикла программного продукта.
Состав и схема функционирования классической системы программирования.
Типы трансляторов, особенности интерпретаторов и компиляторов. Смешанная стратегия трансляции.
Общая схема работы компилятора.
Основные понятия теории формальных грамматик и языков.
Эквивалентные грамматики.
Классификация формальных грамматик и языков по Хомскому.
Соотношения между типами грамматик.
Соотношения между типами языков.
Задача разбора. Дерево вывода.
Неоднозначность грамматик и языков.
Недостижимые и бесполезные (бесплодные) символы грамматики. Алгоритмы удаления недостижимых и бесполезных (бесплодных) символов. Приведённая грамматика.
Определение недетерминированного конечного автомата (НКА).
Диаграмма состояний (ДС) конечного автомата.
Леволинейные регулярные грамматики и конечные автоматы.
Определение детерминированного конечного автомата (КА).
Алгоритм построения детерминированного конечного автомата по НКА.
Задачи лексического анализа.
Лексический анализ на основе регулярных грамматик.
Объектная модель лексического анализатора. Схема его работы.
Задачи синтаксического анализа.
Метод рекурсивного спуска (РС-метод): назначение, семантика процедур метода рекурсивного спуска.
Достаточные условия применимости метода рекурсивного спуска.
Исследование применимости РС-метода в случае наличия ?-альтернативы и итерационных правил.
Задачи семантического анализа. Грамматики с действиями.
Объектная модель синтаксического анализатора.
Использование исключений Си++ при обработке синтаксических ошибок и нарушении контекстных условий.
Свойства языка внутреннего представления программы, примеры таких языков.
Синтаксически управляемый перевод: идея, принципы организации, примеры.
ПОЛИЗ выражений.
ПОЛИЗ операторов языков программирования.
Генерация ПОЛИЗ выражений и операторов.
Интерпретация ПОЛИЗ.
Использование исключений Си++ при обработке ошибок периода выполнения.
Основные стратегии распределения памяти.
Принципы реализации виртуальных функций.
Машинно-независимая и машинно-зависимая оптимизация. Примеры оптимизирующих преобразований.
Интегрированная среда разработки программного обеспечения (ИСР).
Основные функции редактора текстов в рамках ИСР. Примеры его интеграции с другими компонентами ИСР.
Отладчики, их возможности. Примеры интеграции отладчика с другими компонентами ИСР.
Редактор внешних связей, его назначение и принципы работы. Загрузчик.
Библиотеки. Основные типы библиотек.
Критерии проектирования стандартных библиотек.