Бакалавриат
2019/2020
Метавычисления
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс по выбору (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Кто читает:
Департамент информатики
Когда читается:
4-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Преподаватели:
Березун Даниил Андреевич
Язык:
русский
Кредиты:
4
Контактные часы:
60
Программа дисциплины
Аннотация
Является дисциплиной по выбору. Метавычисления — это раздел программирования, посвященный разработке методов анализа и преобразования программ за счет реализации конструктивных метасистем (метапрограмм) над программами. В метавычисления в первую очередь включают теорию суперкомпиляции и близкие методы и средства. Студенты получат представление об основных принципах метавычислений и суперкомпиляции, научатся применять их для реализации частичных вычислителей и суперкомпиляторов. В результате освоения дисциплины студент должен: знать основные принципы метавычислений и суперкомпиляции; уметь применять теории метасистем и метасистемных переходов; владеть процесс-ориентированным подходом к построению методов анализа и преобразования программ — разработкой метапрограмм.
Цель освоения дисциплины
- Целями освоения дисциплины «Метавычисления» являются формирование у студентов теоретических знаний и практических навыков по основам анализа языков программирования, разработке метавычислителей для различных языков программирования, а также освоение методов статического и динамического анализов, семантического анализа, абстрактной интерпретации.
Планируемые результаты обучения
- Знает основные понятия и факты теорий языков программирования и метавычислений.
- Знает основные принципы специализации императивных и функциональных языков. Умеет анализировать завершаем ость онлайн и оффлайн частичных вычислителей и безопасность анализа времени связывания.
- Владеет навыками критического отбора методов решения поставленных задач в области языков программирования. Умеет реализовывать различные виды метавычислителей для функциональных и императивных языков программирования. Владеет навыками в анализе программ и языков программирования.
- Умеет анализировать завершаем ость онлайн и оффлайн частичных вычислителей и безопасность анализа времени связывания. Использует суперкомпиляцию для верификации программ в соответствии с предъявляемыми требованиями информационной безопасности.
Содержание учебной дисциплины
- Введение в метавычисления.
- Специализация программ
- Критерии программной специализации
- Суперкомпиляция
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.166 * Домашнее задание 1 + 0.166 * Домашнее задание 2 + 0.168 * Домашнее задание 3 + 0.5 * Устный экзамен
Список литературы
Рекомендуемая основная литература
- Pierce, B. C. (2002). Types and Programming Languages. Cambridge, Mass: The MIT Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=70966
Рекомендуемая дополнительная литература
- Draheim, D. (2017). Semantics of the Probabilistic Typed Lambda Calculus : Markov Chain Semantics, Termination Behavior, and Denotational Semantics. Berlin, Germany: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1479832