• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Programming languages and compilers

2023/2024
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Course type:
Compulsory course
When:
1 year, 3, 4 module

Instructors


Карпов Юрий Глебович


Шульгин Михаил Алексеевич

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

Аннотация

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

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

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

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

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

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

  • Формальные языки. Грамматики. КА
  • Теория конечных автоматов-распознавателей
  • Регулярные множества и регулярные выражения
  • BDD: Binary Decision Diagrams
  • Трансляция автоматных языков
  • Язык Милан и стековая машина
  • Порождающие грамматики Хомского
  • Атрибутные трансляции и двусмысленные КС-грамматики
  • Атрибутная семантика
  • Трансляция арифметических выражений
  • Конечные автоматы
  • Синтаксический анализ. s-грамматики. Санация КС-грамматик
  • Грамматики рекурсивного спуска
Элементы контроля

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

  • неблокирующий Самостоятельная работа
  • неблокирующий Курсовая работа
  • неблокирующий Экзамен
  • неблокирующий Экзамен
Промежуточная аттестация

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

  • 2023/2024 4th module
    0.3 * Курсовая работа + 0.3 * Курсовая работа + 0.1 * Самостоятельная работа + 0.1 * Самостоятельная работа + 0.2 * Экзамен
Список литературы

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

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

  • 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
  • Князьков, В. С. Введение в теорию автоматов : учебное пособие / В. С. Князьков, Т. В. Волченская. — 2-е изд. — Москва : ИНТУИТ, 2016. — 89 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100715 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

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

  • Драгилева, И. П. Автоматы и алгоритмы : методические рекомендации / И. П. Драгилева, А. С. Митин. — Москва : РТУ МИРЭА, 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). — Режим доступа: для авториз. пользователей.

Авторы

  • Романова Ирина Ивановна
  • Башун Владимир Владимирович
  • Карпов Юрий Глебович