Гетерогенные встраиваемые системы с выделенным управляющим процессором представляют собой естественное решение многих задач в определенных областях, например, в робототехнике или интернете вещей. Но гетерогенность приводит также и к дополнительным сложностям в разработке. С одной стороны, это издержки в процессе разработки из-за платформенных различий частей системы. С другой стороны, это издержки на обмен сообщениями между процессорами во время работы системы. Также возникает проблема конфигурации периферийных процессоров во время исполнения, что непросто решается стандартными средствами. Работа Г.В. Киргизова заключалась в разработке системы программирования встраиваемых гетерогенных устройств, помогающей решить эти проблемы. Текст работы хорошо структурирован. Сначала приводится введение в тематику работы, которое плавно подводит к постановке задачи. За ним следует обзор существующих средств, предназначенных для решения описанных или близких к ним проблем. Что важно, обзор включает описание их недостатков или неприменимости в сфере встроенных систем. Данная работа основана на работе выпускника предыдущего года и приводит в третьем разделе анализ ее проблем и тем самым обосновывает необходимость новой реализации. Четвертый раздел кратко описывает архитектуру новой реализации системы и приводит наглядную UML диаграмму. Существенную часть работы занимает пятый раздел, посвященный предметно- ориентированному языку, на котором пользователю предлагается писать программы для периферийных процессоров. Этот раздел содержит большое количество примеров, а в отдельном подразделе включает описание существенных деталей реализации с обоснованием принятых решений. В целом, этот раздел показывает серьезный объем проведенной работы по проектированию и реализации предметно-ориентированного языка, в ходе которой были рассмотрены альтернативные решения подзадач и принято во внимание удобство пользования языком. Следующий раздел описывает остальные части системы, отвечающие за компиляцию, загрузку и исполнение генерируемого кода. Раздел апробации перечисляет платформы, на которых была протестирована библиотека, среди которых присутствует гетерогенная система, состоящая из двух процессоров архитектуры Arm. Из недостатков можно отметить отсутствие каких-либо количественных характеристик работы системы. Далее приводится раздел с развернутым примером, показывающим возможный сценарий применения библиотеки. Он демонстрирует последовательность работы с библиотекой, а также преимущества, которые может принести ее использование. Это заметно облегчает понимание системы и ее сильных сторон. В последнем разделе приводятся соображения по поводу ограничений библиотеки и ее области применимости. Текст написан на английском языке, грамотно и ясно, хотя и содержит небольшое количество пунктуационных ошибок. Список литературы содержит ссылки на релевантные работы и оформлен согласно стандарту. Проверка ВКР на предмет наличия/отсутствия неправомерных заимствований показала, что работа неправомерных заимствований не содержит. Работа имеет сильную практическую сторону. Можно отметить глубокую продуманность архитектуры системы, которая предусматривает многие возможные случаи использования и позволяет эффективно переиспользовать сгенерированный код. Код проекта также показывает отличный уровень владения возможностями C++. Реализация предметно- ориентированного языка сложна для понимания и немного сомнительна с точки зрения его дальнейшей поддержки и развития. Но эта сложность скрыта от пользователя и выглядит обоснованной, предоставляя гибкость в использовании языка. Что особенно важно, язык поддержан набором тестов, проверяющим корректность трансляции всех основных конструкций. Среди замечаний к реализации можно отметить отсутствие обработки ошибок в модулях компиляции и загрузки генерируемого кода, но это оправдывается ограниченными временными рамками на фоне общего объема проведенной работы. Основной результат работы — разработка прототипа системы программирования гетерогенных встраиваемых архитектур, реализующей интересный подход, основанный на динамической кодогенерации и использовании предметно-ориентированного языка. При условии дальнейшего развития библиотека имеет перспективы для использования в реальных проектах. Итого, проделана объемная и существенная работа, которая соответствует всем требованиям, предъявляемым к выпускной квалификационной работе бакалавра и, несмотря на некоторые замечания, безусловно, заслуживает оценки «отлично».