We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

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

Meta Computing

2020/2021
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