• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2025/2026

Языки программирования и компиляторы

Статус: Маго-лего
Когда читается: 3, 4 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 6
Контактные часы: 60

Программа дисциплины

Аннотация

Курс даёт информацию об общем устройстве компиляторов. Он дает начальное введение в область языков программирования, компиляторов и других языковых инструментов. Будут сформулированы некоторые основные понятия и подходы в данной области, такие, как операционная семантика языков программирования, промежуточное представление программ, интерпретация, преобразования программ и т.д. Студенты познакомятся с базовыми идеями и методами, используемыми при создании современных компиляторов, а также получат практические навыки написания простых компиляторов. Предполагается, что слушатели в процессе выполнения заданий к концу курса реализуют полноценный компилятор в машинный код для простого, но вполне функционального языка императивного программирования.
Цель освоения дисциплины

Цель освоения дисциплины

  • освоение формальных моделей и алгоритмов, а также практических приемов и методов, которые лежат в основе современных подходов к разработке компиляторов формальных языков;
  • начальный опыт применения этих концепций и техник при разработке своего собственного компилятора.
Планируемые результаты обучения

Планируемые результаты обучения

  • знать основные этапы разработки компилятора;
  • уметь при компиляции обрабатывать ветвления, циклы, функции;
  • владеть алгоритмами работы сборщика мусора при разработке компилятора.
  • Знание утилит лексического анализа языка flex и синтаксического анализа BIZON
  • Знание теории формальных языков, компиляторов и трансляротов
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение
  • Формальные языки. Грамматики. КА
  • Грамматики рекурсивного спуска
  • Трансляция автоматных языков
  • Теория конечных автоматов-распознавателей
  • Регулярные множества и регулярные выражения
  • Порождающие грамматики Хомского
  • Атрибутные трансляции и двусмысленные КС-грамматики
  • Атрибутная семантика
  • Трансляция арифметических выражений
  • Конечные автоматы
  • Программные утилиты flex и BIZON
Элементы контроля

Элементы контроля

  • неблокирующий Активность на занятиях
    Присутствие на занятиях, активность на занятиях (выполнение заданий, вопросы преподавателю, собственное мнение по определенным вопросам).
  • неблокирующий Практические задания
Промежуточная аттестация

Промежуточная аттестация

  • 2025/2026 4th module
    0.1 * Активность на занятиях + 0.1 * Активность на занятиях + 0.4 * Практические задания + 0.4 * Практические задания
Список литературы

Список литературы

Рекомендуемая основная литература

  • LLVM: инфраструктура для разработки компиляторов : знакомство с основами LLVM и использование базовых библиотек для создания продвинутых инструментов, Лопес, Б. К., 2015
  • Sharan, K. (2017). Beginning Java 9 Fundamentals : Arrays, Objects, Modules, JShell, and Regular Expressions (Vol. Second edition). [Berkeley, CA]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1632186
  • Классическая теория компиляторов : учеб. пособие, Карпов, В. Э., 2002
  • Князьков, В. С. Введение в теорию автоматов : учебное пособие / В. С. Князьков, Т. В. Волченская. — 2-е изд. — Москва : ИНТУИТ, 2016. — 89 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100715 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Компиляторы : принципы, технологии и инструментарий, Ахо, А. В., 2015
  • Компиляторы: принципы, технологии и инструменты, Ахо, А. В., 2011
  • Математическая теория формальных языков, Пентус, А. Е., 2006
  • Теория синтаксического анализа, перевода и компиляции. Т. 2: Компиляция, Ахо, А., 1978
  • Теория формальных языков. Анализ и трансляция : учебное пособие, Сердобольский, В. И., 2008

Рекомендуемая дополнительная литература

  • Драгилева, И. П. Автоматы и алгоритмы : методические рекомендации / И. П. Драгилева, А. С. Митин. — Москва : РТУ МИРЭА, 2022. — 21 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/265646 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Эриксон, Д. Алгоритмы : руководство / Д. Эриксон , перевод с английского А. В.Снастина, П. Б. Иванова. — Москва : ДМК Пресс, 2023. — 526 с. — ISBN 978-5-97060-981-1. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/348125 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

  • Салибекян Сергей Михайлович