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

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

Instructor


Булычев Дмитрий Юрьевич

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

Аннотация

Является дисциплиной по выбору. Метавычисления — это раздел программирования, посвященный разработке методов анализа и преобразования программ за счет реализации конструктивных метасистем (метапрограмм) над программами. Метавычисления в первую очередь включают теорию суперкомпиляции и близкие методы и средства. В рамках изучения дисциплины студенты получат представление об основных принципах метавычислений и суперкомпиляции, научатся применять их для реализации частичных вычислителей и суперкомпиляторов. Для освоения дисциплины студентам необходимы знания, полученные в результате изучения дисциплин «Функциональное программирование», «Компиляторы», «Семантики языков программирования».
Цель освоения дисциплины

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

  • Формирование у студентов теоретических знаний и практических навыков по основам анализа языков программирования, разработке метавычислителей для различных языков программирования.
  • Освоение методов статического и динамического анализов, семантического анализа, абстрактной интерпретации.
Планируемые результаты обучения

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

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

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

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

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

  • неблокирующий Домашнее задание №3
    Домашнее задание №3 выдается студентам в одном варианте и состоит в реализации суперкомпилятора для академического функционального языка. Из задачи выделяется 4 основных подзадачи, выполняемых обязательно последовательно друг за другом, поскольку каждая последующая подзадача основана на предыдущей. Срок на выполнение каждой подзадачи – одна неделя. Форма представления обучающимися домашнего задания — своевременная публикация решения в репозиторий.
  • блокирующий Экзамен
    Устный экзамен проводится в форме ответов на вопросы экзаменационного билета. Экзаменационный билет содержит два вопроса из перечня вопросов к экзамену. На подготовку ответа выделяется 2,5 часа.
  • неблокирующий Домашнее задание №2
    Домашнее задание №2 выдается студентам в одном варианте и состоит в реализации специализатора для простого функционального языка программирования. Из задачи выделяется 4 основных подзадачи, выполняемых обязательно последовательно друг за другом, поскольку каждая последующая подзадача основана на предыдущей. Срок на выполнение каждой подзадачи – одна неделя. Форма представления обучающимися домашнего задания — своевременная публикация решения в репозиторий.
  • неблокирующий Домашнее задание №1
    Домашнее задание №1 выдается студентам в одном варианте и состоит в реализации специализатора для простого императивного языка программирования. Из задачи выделяется 5 основных подзадач, выполняемых обязательно последовательно друг за другом, поскольку каждая последующая подзадача основана на предыдущей. Срок на выполнение каждой подзадачи – одна неделя. Форма представления обучающимися домашнего задания — своевременная публикация решения в репозиторий.
Промежуточная аттестация

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

  • 2024/2025 2nd module
    Преподаватель учитывает оценку за текущий контроль (домашние задания). Онакопленная = (Одз/1 + Одз/2 + Одз/3) / 3 Результирующая оценка за дисциплину рассчитывается следующим образом: Орезультирующая = 0,5*Онакопленная + 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

Рекомендуемая дополнительная литература

  • Cardoso, J. M. P., & Diniz, P. C. (2009). Compilation Techniques for Reconfigurable Architectures. New York, NY: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=275651
  • 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

Авторы

  • Юдаева Оксана Юрьевна
  • Кузнецов Антон Михайлович