Магистратура
2019/2020
Формальные языки
Статус:
Курс по выбору (Промышленное программирование)
Направление:
01.04.02. Прикладная математика и информатика
Кто читает:
Департамент информатики
Когда читается:
1-й курс, 3 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Москвин Денис Николаевич
Прогр. обучения:
Промышленное программирование
Язык:
русский
Кредиты:
4
Контактные часы:
28
Программа дисциплины
Аннотация
Целью освоения дисциплины «Формальные языки» является формирование у студентов теоретических знаний и практических навыков по основам теории формальных языков. Существенное внимание уделяется вопросам, связанным с теоретическими аспектами синтаксиса и семантики языков программирования, а также вопросам создания эффективных алгоритмов лексического и синтактического анализа кода программ. В результате освоения дисциплины студент должен: − Знать основные методы синтаксического анализа; основные подходы при генерации объектного кода программы. − Уметь описывать синтаксис языков программирования, используя различные подходы; строить семантику языка используя различные подходы; применять регулярные выражения для лексического анализа; создавать алгоритмы для эффективного синтактического анализа кода программ; создавать JITкомпиляторы. − Иметь навыки (приобрести опыт) применения методов описания синтаксиса и семантики языков программирования с использованием различных подходов; методов создания эффективных алгоритмов лексического и синтактического анализа кода программ.
Цель освоения дисциплины
- формирование у студентов теоретических знаний и практических навыков по основам теории формальных языков.
Планируемые результаты обучения
- Знает основные современные принципы и подходы к построению формальных языков. Определяет принадлежность языка программирования к семейству. Владеет навыками поиска актуальной информации по вопросам формальных языков и грамматик
- Знает основные принципы построения современной математики. Применяет современные математические методы к решению математических и программистских задач. Использует полученные навыки в решении практических задач
- Знает алгоритмы для построения дерева разбора. Эффективно реализует метод рекурсивного спуска. Генерирует лексер для заданной грамматики.
- Знает основные методы работы с детерминированным и и конечными автоматами. Умеет представлять и аргументированно обосновывать выбор методов работы с конкретным формальным языком. Владеет навыками представления результатов своей работы с регулярными выражениями и КСграмматиками
Содержание учебной дисциплины
- Конечные автоматы
- Регулярные выражения
- КС-грамматики
- Детерминированные автоматы с магазинной памятью
Элементы контроля
- Домашнее задание №1
- Домашнее задание №2
- Домашнее задание №3
- Домашнее задание №4
- Устный экзаменЭкзамен проводится на платформе Zoom. Экзамен проводится в устной форме (опрос по материалам курса). По просьбе преподавателя студент должен быть готов выполнить некоторые задания в письменном виде, после чего сфотографировать и выслать на почту преподавателю. К экзамену необходимо подключиться согласно расписанию, высланному преподавателем на корпоративные почты студентов накануне экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка платформы Zoom. Для участия в экзамене студент обязан: выбрать себе имя в Zoom совпадающее с его именем и фамилией, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещается выключать камеру. Ипользование конспектов или других справочных материалов допускается только с разрешения преподавателя. Кратковременным нарушением связи во время экзамена считается нарушение связи менее 5 минут. Долговременным нарушением связи во время экзамена считается нарушение 5 минут и более. При долговременном нарушении связи возможность продолжения студентом участие в экзамене определяется преподавателем. Процедура пересдачи подразумевает использование усложненных заданий.
Промежуточная аттестация
- Промежуточная аттестация (3 модуль)0.125 * Домашнее задание №1 + 0.125 * Домашнее задание №2 + 0.125 * Домашнее задание №3 + 0.125 * Домашнее задание №4 + 0.5 * Устный экзамен
Список литературы
Рекомендуемая основная литература
- Малявко А. А. - ФОРМАЛЬНЫЕ ЯЗЫКИ И КОМПИЛЯТОРЫ. Учебное пособие для вузов - М.:Издательство Юрайт - 2019 - 429с. - ISBN: 978-5-534-04288-7 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/formalnye-yazyki-i-kompilyatory-438060
Рекомендуемая дополнительная литература
- W. J. Levelt. (2019). An Introduction to the Theory of Formal Languages and Automata (Vol. Reprint 2019). Berlin/Boston: De Gruyter Mouton. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2039961