• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Meta Computing

2019/2020
Academic Year
RUS
Instruction in Russian
4
ECTS credits
Delivered at:
Department of Informatics
Course type:
Elective course
When:
4 year, 1, 2 module

Instructor


Березун Даниил Андреевич

Программа дисциплины

Аннотация

Является дисциплиной по выбору. Метавычисления — это раздел программирования, посвященный разработке методов анализа и преобразования программ за счет реализации конструктивных метасистем (метапрограмм) над программами. В метавычисления в первую очередь включают теорию суперкомпиляции и близкие методы и средства. Студенты получат представление об основных принципах метавычислений и суперкомпиляции, научатся применять их для реализации частичных вычислителей и суперкомпиляторов. В результате освоения дисциплины студент должен:  знать основные принципы метавычислений и суперкомпиляции;  уметь применять теории метасистем и метасистемных переходов;  владеть процесс-ориентированным подходом к построению методов анализа и преобразования программ — разработкой метапрограмм.
Цель освоения дисциплины

Цель освоения дисциплины

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

Планируемые результаты обучения

  • Знает основные понятия и факты теорий языков программирования и метавычислений.
  • Знает основные принципы специализации императивных и функциональных языков. Умеет анализировать завершаем ость онлайн и оффлайн частичных вычислителей и безопасность анализа времени связывания.
  • Владеет навыками критического отбора методов решения поставленных задач в области языков программирования. Умеет реализовывать различные виды метавычислителей для функциональных и императивных языков программирования. Владеет навыками в анализе программ и языков программирования.
  • Умеет анализировать завершаем ость онлайн и оффлайн частичных вычислителей и безопасность анализа времени связывания. Использует суперкомпиляцию для верификации программ в соответствии с предъявляемыми требованиями информационной безопасности.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в метавычисления.
  • Специализация программ
  • Критерии программной специализации
  • Суперкомпиляция
Элементы контроля

Элементы контроля

  • неблокирующий Домашнее задание 1
  • неблокирующий Домашнее задание 2
  • неблокирующий Домашнее задание 3
  • блокирующий Устный экзамен
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (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