Теория формальных языков и компиляторов - лабораторные работы АВТ-214, АП-226 — Лабораторная работа №7. "Преобразование и анализ кода с использованием Clang и LLVM"

Тема лабораторной работы: Преобразование и анализ кода с использованием Clang и LLVM.

Цель работы: Познакомиться с инструментами Clang и LLVM, научиться собирать AST и IR-промежуточное представление кода на C/C++, а также извлекать базовую информацию о программе.

Задание: 

1. Установить Clang и LLVM;

2. Скомпилировать простой C-файл с использованием clang и получить его: абстрактное синтаксическое дерево (AST), промежуточное представление LLVM IR;

3. Использовать opt для применения базовой комплексной оптимизации (например, О2);

4. Построить граф потока управления (CFG) для оптимизированной программы;
5. Проанализировать результат, сделать выводы и ответить на контрольные вопросы.

Студент, выполнивший задание на лабораторную работу 7, прикрепляет ссылку на git-репозиторий в системe DiSpace в контролирующее мероприятие “Лабораторная работа 7”. В репозитории должны содержаться все промежуточные файлы, которые были получены в результате работы. В README-файле должна быть отражена следующая информация: ход работы, команды терминала, скриншоты работы, промежуточные выводы по каждому заданию, выводы, а также ответы на контрольные вопросы.

 

Оценка за выполнение лабораторной работы выставляется, если:

  1. работа программы продемонстрирована преподавателю.
  2. в ходе разговора с преподавателем студент ответил на все вопросы.
  3. ссылка на репозиторий проекта прикреплена к контролирующему мероприятию (срок - 15-16 недели).

 

Защита для лабораторной работы 7 предусматривает ответы на вопросы по ходу работы.

В случае, если студент берет дополнительное задание, то он сообщает об этом преподавателю на паре, на которой была выдана лабораторная работа. За данное дополнительное задание можно получить максимально 5 бонусных баллов.

Необходимо дополнить репозиторий лабораторной промежуточными файлами по дополнительному заданию. В README файле привести ход работы со скриншотами и выводами.

search