Работа Иванова Андрея Васильевича посвящена разработке и реализации некоторых алгоритмов семантического анализа для динамически формируемых программ, а именно: построение графа потока управления (CFG) и решение одной из задач анализа CFG для входного леса разбора. Следует отметить, что стандартные алгоритмы построения и анализа CFG работают на одном входном дереве, в данной же работе входное множество расширяется до леса деревьев разбора, что соответствует аппроксимации возможных динамически формируемых строк — программы на встроенном языке. Работа является продолжением серии исследований в разрабатываемом на кафедре системного программирования проекте YaccConstructor, и её результаты могут быть использованы для дальнейших исследований. В целом, текст хорошо структурирован. Дан достаточно полный обзор известных подходов к данной задаче и альтернативных инструментов. Разработанные алгоритмы могут быть использованы в новых исследованиях. Результаты работы вошли в статью, представленную на конференции CEE-SECR’15. Реализация выполнена на хорошем техническом уровне и автором продемонстрированы необходимые навыки работы в общем проекте. К сожалению, данная работа не лишена недостатков. К замечаниям можно отнести следующее: 1. Разработка алгоритма и реализация — из текста складывается ощущение, что задача почти не отличается от просто построения CFG. Недостаточно показана сложность задачи — работа с лесом (SPPF), вместо одного дерева разбора. 2. В название работы вынесены Особенности вычисления семантики встроенных языков, однако ни в постановке задачи, ни в заключении, ни в основной части не делается акцента на выявленных отличиях от стандартных алгоритмов. 3. Код не внесён в рабочую ветку проекта YaccConstructor, a лежит в отдельной ветке («cfg»). 4. Отсутствие внедрения или апробации на серьёзном примере. Без этого, считаю, что поставленная цель – изучение особенностей семантического анализа динамически формируемого кода в рамках проекта YaccConstructor – не может быть достигнута в полной мере. Оценка — «хорошо».