НИУ ВШЭ – Нижний Новгород Программа дисциплины «Теория и средства трансляции и компиляции » для направления 01.03.02. Прикладная математика и информатика подготовки бакалавра Правительство Российской Федерации Нижегородский филиал Федерального государственного автономного образовательного учреждения высшего профессионального образования "Национальный исследовательский университет "Высшая школа экономики" Факультет информатики, математики и компьютерных наук Кафедра прикладной математики и информатики Рабочая программа дисциплины «Теория и средства трансляции и компиляции» для образовательной программы «Прикладная математика и информатика» направления подготовки 01.03.02. «Прикладная математика и информатика» уровень бакалавр Разработчик программы: Уткина И.Е. ст. преподаватель, iutkina@hse.ru Одобрена на заседании кафедры ПМИ «___»____________ 2014 г. Зав. кафедрой В.А. Калягин __________________ Рекомендована Академическим советом образовательной программы «___»____________ 2015 г., № протокола________ Утверждена «___»____________ 2015 г. Академический руководитель образовательной программы Н.В. Карпов _________________ Нижний Новгород, 2015 НИУ ВШЭ – Нижний Новгород Программа дисциплины «Теория и средства трансляции и компиляции » для направления 01.03.02. Прикладная математика и информатика подготовки бакалавра 1 Область применения и нормативные ссылки Настоящая программа учебной дисциплины устанавливает минимальные требования к знаниям и умениям студента и определяет содержание и виды учебных занятий и отчетности. Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 01.03.02. «Прикладная математика и информатика», подготовки бакалавра, изучающих дисциплину «Теория и средства трансляции и компиляции». Программа разработана в соответствии с: - образовательной программой «Прикладная математика и информатика»; - учебным планом университета по направлению подготовки 01.03.02. «Прикладная математика и информатика», утвержденным в 2015г. 2 Цели освоения дисциплины Целями освоения дисциплины «Теория и средства трансляции и компиляции» являются изучение основных вопросов, связанных с изучением процесса трансляции (перевода), применяемых при конструировании компиляторов. Помимо рассмотрения фундаментальных, с теоретической точки зрения, подходов к проблеме компиляции, студенты практически реализуют основные фазы процесса компиляции на конкретных примерах. 3 Компетенции обучающегося, формируемые в результате освоения дисциплины В результате освоения дисциплины студент должен: Знать o Основные понятия и определения o Основные фазы процесса трансляции, понимать назначение каждой из них o Уметь o Иллюстрировать свои теоретические знания конкретными примерами o Ориентироваться в общих методах синтаксического анализа и общих подходах к оптимизации объектного кода o Свободно применять основные алгоритмы Иметь навыки (приобрести опыт) o Применения специализированных программных продуктов для практического решения задач В результате освоения дисциплины студент осваивает следующие компетенции: Компетенция Код по НИУ Способен провести ПК-3 теоретическую и экспериментальную оценку математического метода, алгоритма, модели данных Дескрипторы – основные признаки освоения (показатели достижения результата) Студент способен применять программные продукты для решения задач Формы и методы обучения, способствующие формированию и развитию компетенции Чтение лекций, проведение практических занятий, самостоятельная работа НИУ ВШЭ – Нижний Новгород Программа дисциплины «Теория и средства трансляции и компиляции » для направления 01.03.02. Прикладная математика и информатика подготовки бакалавра Компетенция Код по НИУ Дескрипторы – основные признаки освоения (показатели достижения результата) Формы и методы обучения, способствующие формированию и развитию компетенции Способен анализировать ПК-11 Студент способен находить Чтение лекций, тексты и документы по нужную информацию в проведение практических математике и дополнительной литературе. занятий, самостоятельная компьютерным наукам на работа русском (государственном) и английском языках Способен описывать ПК-15 Студент способен использовать Чтение лекций, проблемы и ситуации полученные знания для проведение практических профессиональной описания и решения проблем, занятий, самостоятельная деятельности, используя используя аппарат работа язык и аппарат математических и математических и компьютерных наук компьютерных наук 4 Место дисциплины в структуре образовательной программы Настоящая дисциплина относится к вариативной части математического и естественнонаучного цикла и блоку дисциплин, обеспечивающих подготовку бакалавра. Изучение данной дисциплины базируется на следующих дисциплинах: Формальные языки Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями: Основы теории автоматов Основы теории графов 5 № Тематический план учебной дисциплины Название раздела Введение в компиляцию Лексический анализ Синтаксический анализ Генерация промежуточного кода, генерация кода Итого 1 2 3 4 Всего часов Аудиторные часы СамостояПрактиче тельная Лекци Семин ские работа и ары занятия 28 48 50 26 4 8 8 4 6 12 14 4 152 24 36 18 28 28 18 92 НИУ ВШЭ – Нижний Новгород Программа дисциплины «Теория и средства трансляции и компиляции » для направления 01.03.02. Прикладная математика и информатика подготовки бакалавра 6 Формы контроля знаний студентов Тип контроля Текущий (неделя) Форма контроля Домашнее задание 1 1 2-я – 6-я недели Домашнее задание 2 Итоговый 6.1 1 год 2 Параметры 3 программа 5-я – 10-я недели х Экзамен 4 программа устная форма, билеты Критерии оценки знаний, навыков При выполнении письменных работ, а также экзаменационной работы студент должен продемонстрировать знание теоретического материала полученного на лекциях и изученного самостоятельное, уметь правильно применять его к решению конкретных задач, соблюдать логику решения задачи и грамотно формулировать ответ. Критерии: 1. Знать принципы и методы построение компиляторов. 2. Знать теоретические основы теории автоматов, лексического и синтаксического анализов. 3. Уметь использовать инструментальные средства для разработки компиляторов. 6.2 Порядок формирования оценок по дисциплине Преподаватель оценивает работу студентов на семинарских и практических занятиях: активность в дискуссиях, качество и креативность предлагаемых решений, полноту ответов. Оценки за работу на практических занятиях преподаватель выставляет в рабочую ведомость. Накопленная оценка по 10-ти балльной шкале за работу на семинарских и практических занятиях определяется перед промежуточным или итоговым контролем - Оаудиторная. Преподаватель оценивает самостоятельную работу студентов: правильность выполнения, соответствие работы заданию, полнота рассмотрения проблемы. Оценки за самостоятельную работу студента преподаватель выставляет в рабочую ведомость. Накопленная оценка по 10-ти балльной шкале за самостоятельную работу определяется перед промежуточным или итоговым контролем – Осам. работа. Накопленная оценка за текущий контроль учитывает результаты студента по текущему контролю следующим образом: Онакопленная= 0,5* Оауд + 0,5* Отекущий Где Отекущий = 0,5*Одз1 + 0,5*Одз2 , Результирующая оценка за дисциплину рассчитывается следующим образом: НИУ ВШЭ – Нижний Новгород Программа дисциплины «Теория и средства трансляции и компиляции » для направления 01.03.02. Прикладная математика и информатика подготовки бакалавра Орезульт = 0,5* Онакопл + 0,5 *·Оэкз Способ округления накопленной оценки итогового контроля в форме зачета: арифметический. 7 Содержание дисциплины Раздел 1 Введение в компиляцию Компиляторы Структура компилятора Технологии разработки компиляторов Количество часов аудиторной работы – 10 часов. Основная литература: 1. Ахо А., Лам М., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструментарий, 2-е изд.: Пер. с англ. -М.: ООО «И.Д. Вильямс», 2008. -1184 с. Дополнительная литература: 1. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов, -М, Мир 1999 2. Брой М. Иформатика, -М, Наука 2006 3. Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции, т.2, -М, Мир, 1998 Раздел 2. Лексический анализ Спецификация и распознавание токенов Конечные автоматы Регулярные выражения Количество часов аудиторной работы – 20 часов. Основная литература: 1. Ахо А., Лам М., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструментарий, 2-е изд.: Пер. с англ. -М.: ООО «И.Д. Вильямс», 2008. -1184 с. Дополнительная литература: 1. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов, -М, Мир 1999 2. Брой М. Иформатика, -М, Наука 2006 3. Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции, т.2, -М, Мир, 1998 Раздел 3 Синтаксический анализ Контекстно-свободные грамматики Разработка грамматик Нисходящий и восходящий синтаксические анализы LR-анализ НИУ ВШЭ – Нижний Новгород Программа дисциплины «Теория и средства трансляции и компиляции » для направления 01.03.02. Прикладная математика и информатика подготовки бакалавра Неоднозначные грамматики Количество часов аудиторной работы – 22 часов. Основная литература: 1. Ахо А., Лам М., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструментарий, 2-е изд.: Пер. с англ. -М.: ООО «И.Д. Вильямс», 2008. -1184 с. Дополнительная литература: 1. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов, -М, Мир 1999 2. Брой М. Иформатика, -М, Наука 2006 3. Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции, т.2, -М, Мир, 1998 Раздел 4 Генерация промежуточного кода, генерация кода Синтаксические деревья Трансляция выражений Простой генератор кода Сборка мусора Количество часов аудиторной работы – 8 часов. Основная литература: 1. Ахо А., Лам М., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструментарий, 2-е изд.: Пер. с англ. -М.: ООО «И.Д. Вильямс», 2008. -1184 с. Дополнительная литература: 1. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов, -М, Мир 1999 2. Брой М. Иформатика, -М, Наука 2006 3. Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции, т.2, -М, Мир, 1998 8 Образовательные технологии В рамках курса используются разбор практических задач и кейсов, большое количество лабораторных работ 9 9.1 Оценочные средства для текущего контроля и аттестации студента Тематика заданий текущего контроля Примерные вопросы/ задания для текущего контроля: 1. Лексический, синтаксический, семантический анализы 2. Трансляция программ 3. Нисходящий, восходящий анализы 4. Построение синтаксических деревьев 5. Контекстно-свободные грамматики 6. LR-грамматики 7. LR-анализаторы 8. Синтаксические деревья НИУ ВШЭ – Нижний Новгород Программа дисциплины «Теория и средства трансляции и компиляции » для направления 01.03.02. Прикладная математика и информатика подготовки бакалавра Вопросы для оценки качества освоения дисциплины Примерный перечень вопросов к зачету (экзамену) по всему курсу или к каждому промежуточному и итоговому контролю для самопроверки студентов. 1) Введение в компиляцию a) Компиляторы b) Структуры компилятора c) Технологии разработки компиляторов 2) Лексический анализ a) Введение в ЛА b) Буферизация ввода c) Спецификация токенов d) Операции над языками e) Регулярные выражения f) Регулярные определения g) Расширение РВ h) Распознавание токенов i) Диаграммы переходов j) Конечные автоматы k) Преобразование ДКА в НКА l) Преобразование РВ в НКА 3) Синтаксический анализ a) Введение в СА b) Образцы грамматик c) Контекстно­свободные грамматики d) Порождения e) Деревья разбора f) Неоднозначность g) Разработка грамматики h) Устранение неоднозначности i) Устранение левой рекурсии j) Левая факторизация k) Нисходящий СА l) LL грамматики m) Восходящий СА n) Введение в LR анализ o) Пункты и LR(0) автомат 4) Генерация промежуточного кода, генерация кода a) Синтаксические деревья b) Построение ациклических графов c) Перевод СД в трехадресный код d) Простой генератор кода e) Сборка мусора 9.2 НИУ ВШЭ – Нижний Новгород Программа дисциплины «Теория и средства трансляции и компиляции » для направления 01.03.02. Прикладная математика и информатика подготовки бакалавра 10 Учебно-методическое и информационное обеспечение дисциплины 10.1 Базовый учебник 1. Ахо А., Лам М., Сети Р., Ульман Д. Компиляторы: принципы, технологии и инструментарий, 2-е изд.: Пер. с англ. - М.: ООО «И.Д. Вильямс», 2008. -1184 с. 10.2 Дополнительная литература 1. Льюис Ф., Розенкранц Д., Стирнз Р. Теоретические основы проектирования компиляторов. – М.: Мир 1999 2. Брой М. Иформатика. – М.: Наука 2006 3. Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции, т.2. –М.: Мир, 1998 10.3 Программные средства Для успешного освоения дисциплины, студент использует следующие программные средства: awk, sed, antlr. 11 Материально-техническое обеспечение дисциплины Перечень необходимых технических средств обучения, используемых в курсе повышения квалификации и способы их применения: Необходимое обеспечение: 1. проектор 2. экран 3. компьютеры для студентов 4. IntelliJ IDEA 5. Antlr Автор программы И.Е. Уткина