• 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
Equivalence checking and intersection of deterministic timed finite state machines

Bresolin D., El-Fakih K., Villa T. et al.

Formal Methods in System Design. 2022.

Book chapter
City and building information modelling using IFC standard

Shutkin V., Morozkin N., Zolotov V. et al.

In bk.: ECPPM 2021 – eWork and eBusiness in Architecture, Engineering and Construction. CRC Press, 2021. P. 406-413.

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

2021/2022
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Type:
Compulsory course
When:
1 year, 3, 4 module

Instructors

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

Аннотация

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

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

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

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

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

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

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

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

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

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

  • 2021/2022 учебный год 4 модуль
    Итог = По модулю 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