Проблема безопасности соединения устройств через Интернет не нуждается в описании. Несмотря на многолетнюю разработку реализаций протоколов передач данных, они все еще нередко подвержены хакерским атакам. Один из путей решения этой проблемы видится в формальной верификации этих реализаций. Примером проекта, разрабатываемого под такой идеологией, является Everest – попытка создания безопасной реализации протокола HTTPS с использованием языка программирования F*. Одна из задач на пути к этой цели – исполнение F*-программ в браузере. Работа Марины Игоревны посвящена решению этой задачи, которая сводится к разработке транслятора из подмножества языка OCaml в ECMAScript 6. Текст работы хорошо структурирован и состоит из введения, заключения и пяти глав, первые две из которых описывают требования к работе и поиск путей к их решению, а три остальные – результаты. Первая глава рассказывает о контексте работы и заканчивается постановкой задачи. Вторая глава содержит достаточно подробный и хорошо написанный обзор технологий и языков, затронутых в процессе работы: F*, JavaScript, статический анализатор Flow, проект HACL*, использовавшийся для апробации транслятора; наконец, в главе рассказывается о существующих трансляторах из OCaml в JavaScript (BuckleScript и js_of_ocaml), и обосновывается их непригодность в контексте работы. Третья глава посвящена формальному описанию правил трансляции. Сперва формально определяется синтаксис транслируемого фрагмента OCaml, а также синтаксис используемого подмножества языка JavaScript. Затем описаны сами правила трансляции абстрактного синтаксического дерева одного языка во второй. Правила логичным образом делятся на пять групп: правила трансляции констант, правила трансляции выражений в выражения, правила трансляции выражений в операторы, правила трансляции сопоставления с шаблоном и, наконец, правила трансляции типов выражений. Формального доказательства корректности системы правил не приводится, однако, за исключением нескольких опечаток, рецензентом явных ошибок в правилах не выявлено. Четвертая глава диссертации содержит подробности об архитектуре решения и деталях реализации. Эта глава хорошо иллюстрирована и описывает пошаговый процесс построения готового Web-приложения из F*-программы. Кроме того, в ней рассказывается о решении двух технических проблем, возникших в процессе реализации: механизм работы с библиотечными функциями и преодоление препятствий, связанных с несовместимостью двух стилей работы с модулями ES и CommandJS. Последняя глава описывает эксперименты над полученным транслятором. К сожалению, эта глава значительно “слабее” остальных. Первая часть пятой главы демонстрирует лаконичность генерируемого кода и его синтаксическую “близость” к оригинальному. Это безусловный плюс к читаемости сгенерированного кода, который дает возможность внесения в него правок пользователем уже после процесса трансляции. Во второй части пятой главы приводится сравнение времени выполнения двух реализаций алгоритма ChaCha20: транслированной полученным инструментом с F* и сторонней реализацией на JavaScript. Итоги сравнения указывают на некоторые нерешенные проблемы: транслированный код работает от 10 до 20 раз медленнее, чем написанный на JavaScript. К чести автора, причины этого известны, и работа над ними запланирована в будущем. К сожалению, экспериментальное исследование на этом заканчивается. Глава не содержит данных потреблении памяти транслированными программами, и, что хуже, в главе остается нераскрытым интересный вопрос об эффективности аналогов BuckleScript и js_of_ocaml. Оба этих инструмента выполняют трансляцию скомпилированного OCaml-кода, отчего теряется читаемость транслированного кода, но, очевидно, появляется выигрыш во времени работы за счет оптимизаций, выполняемых компилятором OCaml. Исследование этого компромисса виделось до определенной степени важным в контексте данной работы, однако оно отсутствует. В целом, текст работы написан грамотным и ясным языком, хотя содержит незначительное количество опечаток и пунктуационных ошибок. Текст сопровождается читаемыми иллюстрациями и графиками. Список литературы оформлен по стандарту, содержит ссылки на актуальные работы и ресурсы. Проверка ВКР на предмет наличия/отсутствия неправомерных заимствований показала, что работа неправомерных заимствований не содержит. В итоге, была проделана достаточно объемная и содержательная работа, которая, несмотря на незначительные проблемы, без сомнений, заслуживает оценки «отлично», а ее исполнитель – присуждения звания магистра.