Gaisaryan_UMK_2014 (УМК ВМК)

2019-09-18СтудИзба

Описание файла

Файл "Gaisaryan_UMK_2014" внутри архива находится в папке "УМК ВМК". Документ из архива "УМК ВМК", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "Gaisaryan_UMK_2014"

Текст из документа "Gaisaryan_UMK_2014"

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное образовательное учреждение

высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ М.В. ЛОМОНОСОВА»

Факультет вычислительной математики и кибернетики

УТВЕРЖДАЮ

Декан факультета ВМК

__________________Е.И. Моисеев

«______»__________________2013

Учебно-методический комплекс

«Конструирование компиляторов»

Направление подготовки

010400_Прикладная математика и информатика

Профили бакалавриата:

3 поток "Системное программирование и компьютерные науки"

Квалификация (степень) выпускника

Бакалавр

Форма обучения

Очная

Разработчик (составитель) УМК

проф. Гайсарян С. С.

____________

«___»_________20__ г.

Москва

2013

Содержание

1. Место дисциплины в структуре основной образовательной программы 3

2. Цели освоения дисциплины 3

3. Компетенции обучаемого, формируемые в результате освоения дисциплины 3

4. Рабочая программа учебной дисциплины 4

4.1 Тематический план 4

4.2 Структура дисциплины по видам работ 7

4.3. Комплексное индивидуальное практическое задание 9

4.4 Содержание лекций 10

5. Образовательные технологии 10

6. Учебно-методическое и информационное обеспечение дисциплины 11

7. Материально-техническое обеспечение дисциплины 11

8. Учебно-методическое обеспечение самостоятельной работы студентов 11

8.1 Пример учебно-методического обеспечения для практического задания 11

9. Контрольно-оценочные материалы 15

9.1 Программа экзамена по курсу 15

10. Рейтинг-план дисциплины 16

  1. 1. Место дисциплины в структуре основной образовательной программы

Дисциплина «Конструирование компиляторов» входит в профессиональный блок вариативной части ОС МГУ по направлению подготовки 010400.62 «Прикладная математика и информатика». Логически и содержательно-методически данная дисциплина связана с общефакультетскими курсами: «Алгоритмы и алгоритмические языки», «Общая алгебра».

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

  1. 2. Цели освоения дисциплины

Целью освоения дисциплины является получение базовых знаний в области разработки и применения современных компиляторов и компиляторных сред для разработки программ и для решения некоторых задач по обеспечению безопасного функционирования программ, для решения которых применяются компиляторные технологии.

  1. 3. Компетенции обучаемого, формируемые в результате освоения дисциплины

В результате освоения дисциплины обучающийся должен:

Знать: структуру современного оптимизирующего компилятора; структуру и состав современных компиляторных сред: GCC, LLVM и др.; промежуточные представления программы, удобные для статической оптимизации; методы машинно-независимой оптимизации; методы статической машинно-ориентированной оптимизации; методы динамического анализа и динамической оптимизации; методы динамического анализа программ и принципы построения динамических (JIT) компиляторов.

Уметь: применять компиляторные методы и технологии для решения задач обратной инженерии, защиты программного кода, обнаружения дефектов в программах и др.; строить квази-оптимальную SSA-форму процедуры; «укрупнять» узлы графа потока управления, выделяя в нем суперблоки и другие области и пересчитывая передаточные функции; осознанно выбирать режим работы компилятора, оптимальный для его программы.

Владеть: методами статического анализа и оптимизации программ на основе исследования потока данных; методами и средствами статической машинно-ориентированной оптимизации (распределение регистров, планирование кода, использование параллелизма уровня машинных инструкций).

Универсальные, профессиональные и специализированные компетенции, которыми должен обладать студент в результате освоения дисциплины

Универсальные компетенции:

а) общенаучные: способность анализировать научные проблемы и физические процессы, использовать на практике фундаментальные знания, полученные в области естественных и гуманитарных наук (НК-1); способность осваивать новую проблематику, терминологию, методологию, овладевать научными знаниями, владеть навыками самостоятельного обучения (НК-2); способность логически точно, аргументировано и ясно формулировать свою точку зрения, владеть навыками научной и общекультурной дискуссий (НК-3); готовность к творческому взаимодействию с коллегами по работе и научным коллективом, способность и умение выстраивать межличностное взаимодействие, соблюдая уважение к товарищам и проявляя терпимость к иным точкам зрения (НК-4).

в) системные: способность к творчеству, порождению инновационных идей, выдвижению самостоятельных гипотез (СК-1);

способность к поиску, критическому анализу, обобщению и систематизации научной информации, к постановке целей исследования и выбору оптимальных путей и методов их достижения (СК-2);

Профессиональные компетенции:

в области научно-исследовательской деятельности:

способность понимать и применять в исследовательской и прикладной деятельности современный математический аппарат (ПК-2);

в проектной и производственно-технологической деятельности: способность применять в профессиональной деятельности современные языки программирования и методы параллельной обработки данных, операционные системы, электронные библиотеки и пакеты программ, сетевые технологии (ПК-3);

способность приобретать новые научные и профессиональные знания, используя современные образовательные и информационные технологии (ПК-9);

способность осуществлять целенаправленный поиск информации о технологических достижениях в сети Интернет и из других источников (ПК-10).

Общая трудоёмкость дисциплины составляет 3,0 зачётных единиц (108 часов). Лекции – 32 часа, семинары – 32 часа, самостоятельная работа – 44 часа,

Экзамен в 7-м семестре.

За курс отвечает кафедра системного программирования.

  1. 4. Рабочая программа учебной дисциплины

    1. 4.1 Тематический план

Название темы

Аудиторные занятия (часы)

Самостоятельная работа студента

лекции

семинары

Введение. Описание процесса компиляции. Структура оптимизирующего компилятора. Основные вопросы, изучаемые в курсе.

1

2

Построение промежуточного представления программы. Базовые блоки и граф потока управления. Биткод среды LLVM – пример промежуточного представления.

1

2

2

Локальная оптимизация. Метод нумерации значений. Представление базового блока в виде направленного ациклического графа

2

2

2

Анализ потока данных – основной метод глобальной оптимизации. Примеры анализа потока данных – анализ достигающих определений и анализ живых переменных.

4

2

2

Граф потока управления: остовное дерево, обход, нумерация вершин, классификация дуг, отношение до-минирования и построение дерева доминаторов.

4

4

4

SSA-форма промежуточного пред-ставления и ее построение. Граница доминирования. Анализ потока данных в SSA-форме. Доступные выражения.

2

2

2

Обоснование анализа потока данных: полурешетки, передаточные функции, общий итерационный алгоритм.

Методы ускорения анализа потока данных. Суперблоки и другие области графа потока управления. Вычисление передаточных функций областей по передаточным функци-ям составляющих их базовых блоков.

4

4

4

Глобальный метод нумерации значений

4

4

4

Глобальный анализ указателей. Псевдонимы (алиасы). Недостаточность глобального анализа. Межпроцедурный анализ. Граф вызовов. Методы учета контекста.

4

4

4

Задачи решаемые на этапе машинно-ориентированной оптимизации. Планирование кода. Распределение регистров

2

2

2

Другие методы оптимизации: оптимизация потока управления, возвраты из рекурсивных функций. Раскрутка циклов. Открытая вставка функций.

2

2

2

Генерация объектного кода методом переписывания дерева

4

4

4

Комплексное практическое задание.

0

0

12

Итого:

32

32

44

Всего (часы):

(аудиторные занятия и самостоятельная работа)

108

    1. 4.2 Структура дисциплины по видам работ

Раздел

Дисциплины

Неделя семестра

Виды учебной работы, включая самостоятельную работу студентов и трудоемкость (в часах)

Формы текущего контроля успеваемости (по неделям семестра)

Форма промежуточной аттестации (по семестрам)

лекц

прак

сам

Введение. Описание процесса компиляции. Структура оптимизирующего компилятора. Основные вопросы, изучаемые в курсе.

1

1

1

Построение промежуточного представления программы. Базовые блоки и граф потока управления. Биткод среды LLVM – пример промежуточного представления.

1

1

2

1

Промежуточная проверка практического задания

Локальная оптимизация. Метод нумерации значений. Представление базового блока в виде направленного ациклического графа

2

2

2

2

Промежуточная проверка практического задания

Анализ потока данных – основной метод глобальной оптимизации. Примеры анализа потока данных – анализ достигающих определений и анализ живых переменных.

3

2

2

2

Промежуточная проверка практического задания с выставлением технических баллов

Граф потока управления: остовное дерево, обход, нумерация вершин, классификация дуг, отношение до-минирования и построение дерева доминаторов.

4

4

4

4

Промежуточная проверка практического задания

SSA-форма промежуточного пред-ставления и ее построение. Граница доминирования. Анализ потока данных в SSA-форме. Доступные выражения.

5-6

2

2

2

Промежуточная проверка практического задания

Обоснование анализа потока данных: полурешетки, передаточные функции, общий итерационный алгоритм.

7

4

4

4

Промежуточная проверка практического задания

Методы ускорения анализа потока данных. Суперблоки и другие области графа потока управления. Вычисление передаточных функций областей по передаточным функциям составляющих их базовых блоков.

8-9

4

4

4

Промежуточная проверка практического задания с выставлением технических баллов

Глобальный метод нумерации значений

10

2

2

2

Промежуточная проверка практического задания

Глобальный анализ указателей. Псевдонимы (алиасы). Недостаточность глобального анализа. Межпроцедурный анализ. Граф вызовов. Методы учета контекста.

11-12

4

2

2

Промежуточная проверка практического задания

Задачи решаемые на этапе машинно-ориентированной оптимизации. Планирование кода. Распределение регистров

13-14

4

4

4

Промежуточная проверка практического задания

Другие методы оптимизации: оптимизация потока управления, возвраты из рекурсивных функций. Раскрутка циклов. Открытая вставка функций.

15

2

2

2

Промежуточная проверка практического задания

Генерация объектного кода методом переписывания дерева

16

2

2

2

Итоговая проверка практического задания с выставлением технических баллов

14

Комплексное практическое задание.

1-16

0

0

12

    1. 4.3. Комплексное индивидуальное практическое задание

В качестве практического задания студентам предлагается попробовать самостоятельно реализовать одно из оптимизирующих преобразований, используя инфраструктуру компилятора LLVM и его промежуточное представление – биткод.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее