ОТЗЫВ руководителя на выпускную квалификационную работу бакалавра кафедры системного программирования СПбГУ направления 231000 “Программная инженерия” Мелентьева Кирилла Игоревича “Разработка системы программирования гетерогенных архитектур с использованием LLVM” Работа Мелентьева К.И. посвящена поиску практического решения конкретной технической задачи, с которой сталкиваются разработчики программного обеспечения современных встраиваемых устройств. Очень часто такие устройства — да и многие кибер-физические системы “Эры Интернета Вещей” — имеют распределённую гетерогенную архитектуру. Например, часть функциональности (в основном, требующей больших вычислительных мощностей или больших объемов хранилищ данных) находится на серверах в Интернет, при этом есть промежуточные узлы сбора и обработки информации, поступающей с малых, энергоэффективных сенсоров. Так же в автономных устройствах бывают разделены аппаратно (реализованы на ядрах разных архитектур для эффективности) функции непосредственного чтения показаний датчиков и высокоуровневого взаимодействия. В таких случаях разработка встраиваемого программного обеспечения (“прошивки”) ведётся параллельно в разных средах программирования, поставляемых производителями соответствующих процессоров, но часто на одном языке (С или С++). Перед студентом была поставлена задача поиска и прототипирования решения этой актуальной для современной индустрии задачи: упрощения процесса одновременной разработки и сопровождения прошивки микроконтроллеров и связанных (общающихся) с ними прикладных программ на процессорах общего назначения. В ходе работы Мелентьев К.И. самостоятельно изучил предметную область, предложил архитектуру решения и выбрал средства реализации. В основу технологии разработки ПО для гетерогенных систем после анализа возможных подходов решено было положить идею динамической кодогенерации и реализовать вспомогательную библиотеку поверх LLVM. Для упрощения создания программ с помощью созданной библиотеки был также предложен и реализован встроенный в С++ предметно-ориентированный язык. Считаю, что Мелентьев К.И. успешно справился с поставленной задачей. Код свободно доступен в сети интернет, написан на должном профессиональном уровне, продемонстрировано владение современными инструментами и технологией разработки программного обеспечения. Текст описывает основные принятые решения, хорошо структурирован. Основные результаты представлялись на следующих конференциях. Современные технологии в теории и практике программирования, СПбПУ, 26.04.2017, опубликованы тезисы доклада. SEIM 2017 “Программная Инженерия и Организация Информации”, 21.04.2017, индексируется РИНЦ. Продемонстрированные в ходе выполнения работы самостоятельность и общий уровень практических навыков позволяют утверждать, что Мелентьев К.И. является квалифицированным специалистом в области программной инженерии. Оцениваю проделанную работу на “отлично” и рекомендую продолжить исследовательскую часть работы в магистратуре. Старший преподаватель кафедры системного программирования Я.А.Кириленко 25.05.2017