• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Реализация функционального языка программирования с линейными типами

ФИО студента: Солянкин Иван Михайлович

Руководитель: Кузнецов Степан Львович

Кампус/факультет: Факультет компьютерных наук

Программа: Науки о данных (Магистратура)

Год защиты: 2020

Чистые функциональные языки часто рассматриваются как консерватинвые расширения $\lambda$-исчисления и используют его для формализации понятия вычисления. Соответствие Карри-Говарда утверждает, что между термами $\lambda$-исчисления с зависимыми типами и формулами интуционистской логики предикатов есть однозначноее соответсвие, таким образом, меняя логику, можно получать системы типов с различными свойствами. Эта идея привела к появлению множества фунциональных и императивных языков программирования с различными системами типов. Как правило, такие языки используют систему типов для улучшения выразительности и для проверки безопасности программ, и редко используют их для выполнения различных оптимизаций относительно используемой памяти и времени выполнения программ. В общем виде, редукция $\lambda$-термов не зависит от типизации, являясь разновидностью символьным переписыванием. Однако реальные реализации языков программирования не являются абстрактными машинами и подвержены ограничениям реального мира и существующего аппаратного обеспечения. Мы рассматриваем идею использования нетривиальных систем типов не только для улучшения выразительности и безопасности программ, но и для создания лучших оптимизирующих компиляторов. Мы приводим реализацию функционального языка программирования с линейными типами в качестве подтверждения данной идеи. Мы основываем нашу работу на недавних исследования в области теории языков программирования, а также на существующих индустриальных решениях. Мы расширяем существующих язык программирования Quill и приводим его реализацию. Идеи, рассмотренные в данной работе, могут быть применения к другим функциональным языкам с нестрогой моделью вычислений. Недавний расцвет интереса к функциональному программированию, а также популярность таких языков как Rust, показывает, что исследования в данном направлении будут также интересны и в применении к императивным языкам.

Выпускные квалификационные работы (ВКР) в НИУ ВШЭ выполняют все студенты в соответствии с университетским Положением и Правилами, определенными каждой образовательной программой.

Аннотации всех ВКР в обязательном порядке публикуются в свободном доступе на корпоративном портале НИУ ВШЭ.

Полный текст ВКР размещается в свободном доступе на портале НИУ ВШЭ только при наличии согласия студента – автора (правообладателя) работы либо, в случае выполнения работы коллективом студентов, при наличии согласия всех соавторов (правообладателей) работы. ВКР после размещения на портале НИУ ВШЭ приобретает статус электронной публикации.

ВКР являются объектами авторских прав, на их использование распространяются ограничения, предусмотренные законодательством Российской Федерации об интеллектуальной собственности.

В случае использования ВКР, в том числе путем цитирования, указание имени автора и источника заимствования обязательно.

Реестр дипломов НИУ ВШЭ