Теория компиляции относится к области теоретической информатики. В учебной дисциплине рассматриваются концептуальные понятия: компилятор, фазы компиляции, грамматики, лексический анализ, синтаксический анализ, генерация кода. Впадение этими понятиями, как фундаментальными для понимания моделей преобразования текстов программ с языка высокого уровня в машинный код, поможет студентам понять внутреннюю логику операторов и схем представления структур данных, научиться разрабатывать эффективные, корректно работающие программы, а в дальнейшем самостоятельно осваивать новые средства ИТ. В содержание дисциплины включены демонстрационные примеры, наглядно иллюстрирующие абстрактные теоретические понятия. При изучении дисциплины внимание уделяется самостоятельной работе студентов по разработке фрагментов компиляторов, способствующей более успешному освоению содержания дисциплины.
Структура компилятора. Языки и их представление. Алфавиты, цепочки и языки. Представление языков. Грамматики. Лексический анализ. Регулярные множества и выражения. Конечные автоматы. Синтаксический анализ. КС-грамматики и МП-автоматы. Организация таблиц символов. Промежуточное представление программы. Представление в виде ориентированного графа. Организация памяти. Генерация кода. Модель машины. Динамическая организация памяти. Трансляция арифметических выражений. Разработка программ, моделирующих работу составляющих компилятора.