• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Book
ECPPM 2021 – eWork and eBusiness in Architecture, Engineering and Construction

Edited by: Vitaly Semenov, R. J. Scherer.

CRC Press, 2021.

Article
Optimization of ProVerif Programs for AKE Protocols

Vinarskii E., Демаков А. В.

Programming and Computer Software. 2022. Vol. 48. No. 8. P. 781-787.

Book chapter
Adaptive Homing Sequences for Partial Weakly-initialized Observable FSMs

Vinarskii E., Твардовский А. С., Evtushenko N. V.

In bk.: Proceedings 2021 IEEE East-West Design & Test Symposium (EWDTS). IEEE, 2021.

Working paper
Preventive Model-based Verification and Repairing for SDN Requests

Burdonov I., Kossachev A., Nina Yevtushenko et al.

arxiv.org. Computer Science. Cornell University, 2020

Compiler Technologies

2024/2025
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Type:
Elective course
When:
3 year, 1, 2 module

Instructor

Kulagin, Ivan

Kulagin, Ivan

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

Аннотация

В курсе «Компиляторные технологии» рассматриваются основные принципы построения современных оптимизирующих компиляторов, причем основное внимание уделяется именно оптимизации кода — начиная от генерации внутреннего представления программы, анализа потока данных, различных этапов анализа и оптимизации кода, и заканчивая распределением регистров для конкретной целевой архитектуры и генерации для нее машинного кода. В ходе курса подробно рассматриваются алгоритмы компиляторных оптимизаций, а также разбираются примеры их работы. Рассматриваемые в курсе алгоритмы составляют основу оптимизаций, применяемых в современных промышленных компиляторах, таких как Clang/LLVM и GCC.
Цель освоения дисциплины

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

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

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

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

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

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

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

  • неблокирующий Контрольные работы
    Направлены на закрепление лекционного и семинарского материалов.
  • неблокирующий Экзамен
    Общая проверка знаний по курсу
Промежуточная аттестация

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

  • 2024/2025 2nd module
    Итог = По модулю 10 (Среднее (КР) + Экзамен)
Список литературы

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

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

  • Keith Cooper, & Linda Torczon. (2004). Engineering a Compiler. Morgan Kaufmann.

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

  • Richard R. Brooks. (2013). Introduction to Computer and Network Security : Navigating Shades of Gray. Chapman and Hall/CRC.
  • Shankar, P., & Srikant, Y. N. (2008). The Compiler Design Handbook : Optimizations and Machine Code Generation, Second Edition (Vol. 2nd ed). Boca Raton: CRC Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=209423

Авторы

  • Буцкая Евгения Александровна