РЕЦЕНЗИЯ на выпускную квалификационную работу студента 4 курса кафедры системного программирования СПбГУ Семина Алексея Васильевича, обучающегося по направлению 231000 (программная инженерия) Тема выпускной квалификационной работы: Разработка оптимизирующего компилятора языка DxEL на платформе Java В выпускной квалификационной работе рассматривается проблема разработки компилятора для языка dxScript (DxEL), предназначенного для программирования технических индикаторов в рамках задачи финансового анализа. Во введении автором рассматривается задача технического анализа, история развития и актуальные проблемы разработки средств программирования технических индикаторов. В разделе «Обзор» автор детально рассматривает основные требования к средствам программирования технических индикаторов, рассматривает наиболее значимые из существующих решений и проводит их сравнение по сформированным критериям. В результате сравнительного анализа обосновывается актуальность разработки решения на базе языка dxScript (DxEL). В разделе «Постановка задачи» на основе проведённого анализа формулируются основные задачи по разработке решения на базе языка dxScript. В разделе «Язык dxScript (DxEL)» даёт краткое описание языка dxScript и рассматривает некоторые его особенности, важные для реализации программного решения на его основе. В разделе «Реализация» обосновывается выбор решения на основе Java платформы и компиляции в Java-bytecode, описывается общая архитектура решения и основные программные интерфейсы. В подразделе «Компилятор» рассматриваются основные этапы работы компилятора и раскрываются некоторые особенности реализации этапа планирования исполнения и оптимизации, связанные со спецификой языка dxScript. В подразделе «Тестирование» описаны меры по обеспечению качества, принятые при разработке компилятора. В разделе «Замеры производительности» описана методика тестирования производительности полученного решения и представлены замеры производительности получаемого кода в режимах с оптимизацией и без – продемонстрирован прирост производительности в 30-90% от применяемых оптимизаций. Также проведён сравнительный анализ скорости исполнения с решением на основе языка ThinkScript – продемонстрированно ускорение в 5-8 раз. В разделе «Апробация» представлены экспериментальные решения на основе разработанной библиотеки в виде консольного приложения для расчёта индикаторов на основе исходных данных в формате CSV и интеграции в качестве скриптового языка в интерактивную систему финансового анализа InfoRider. В заключении представлены основные результаты работы. Все ранее поставленные задачи выполнены. Для генерации грамматического разбора и кодогенерации применены актуальные технологии, предложенные оптимизации соответствуют принятой модели исполнения и достаточно эффективны. Предложенная архитектура учитывает особенности окружения и перспективы развития, что подтверждается успешной интеграцией в существующий программный комплекс. В работе были выявлены также следующие недостатки: 1. При анализе производительности не указаны время работы компилятора и объём потребляемой памяти, в сравнительном анализе не представлено сравнение с одной из рассмотренных систем (Esper/EPL) формально отвечающей основным критериям. 2. В разделе «Тестирование» не приводится данных о покрытии или других характеристик, подтверждающих эффективность принятого подхода. Проверка ВКР на предмет наличия/отсутствия неправомерных заимствований показала, что работа неправомерных заимствований не содержит. На основании вышеизложенного можно заключить, что выпускная квалификационная работа соответствует основным требованиям, предъявляемым к выпускной квалификационной работе бакалавра, и заслуживает оценки «отлично». Цителов Дмитрий Игоревич, Руководитель направления dxLab ООО «Эксперт-Система» Дата: 25 мая 2016г Подпись: __________________________