В большинстве распространенных языков программирования общего назначения в настоящее время применяется автоматическое управление динамической памятью, реализованное в виде сборщика мусора. Важным исключением является C++, ряд конструкций которого (прежде всего, адресная арифметика, явные указатели и неконтролируемые преобразования типов) затрудняет реализацию сборки мусора; кроме того, сама необходимость применения автоматического управления памятью для программ на С++ является предметом дискуссий. Однако применение легковесной реализации сборщика мусора в виде независимой от компилятора библиотеки может быть оправдано для определенного класса задач и вполне вписывается в идеологию использования С++. На кафедре системного программирования в течение ряда лет разрабатывается именно такой, «библиотечный» подход к управлению памятью. В результате на момент начала данной работы уже была реализована библиотека почти точной компактифицирующей сборки мусора, совместимой с многопоточными приложениями («thread-safe»). Выполнение данной работы преследовало несколько целей. Во-первых, необходимо было изучить вопрос о реализуемости полностью точной трассирующей сборки мусора для С++ с некооперативным компилятором. Решение этой проблемы позволило бы оценить выразительную силу целевого языка даже в случае неэффективности самого сборщика. Далее, очевидным направлением развития существующей реализации являлось использование инкрементального подхода, при котором фаза пометки совмещается во времени с работой мутатора. Такой подход потенциально позволяет добиться низколатентной сборки мусора, вызывающей сравнительно малые паузы, что может представлять ценность даже при невысокой производительности сборщика в целом. Наконец, данные модификации должны были сохранить такие свойства существующей реализации, как совместимость с многопоточностью и неавтоматической дисциплиной управления динамической памятью. В итоге проделанной работы существующая библиотека была модифицирована до инкрементального, полностью точного сжимающего сборщика мусора. Достижение этого результата потребовало глубокого изучения как собственно языка С++ на уровне текста стандарта, так и существующих подходов и алгоритмов для сборки мусора и организации управления памятью, а также значительного объема нетривиальной инженерной работы, включающей тестирование и апробацию. Важным практическим результатом можно считать то, что в новой реализации время паузы на сборку мусора действительно уменьшилось примерно в два раза. Вместе с тем полученное решение обладает рядом недостатков, основным из которых является низкая производительность сборщика мусора по сравнению с предыдущей версией. Причины этого известны, равно как и способы оптимизации. Это открывает возможности для дальнейшего развития данной работы. В процессе работы Е.А.Моисеенко активно взаимодействовал с научным руководителем, вёл самостоятельную работу, все результаты были получены в срок. Проверка ВКР на предмет наличия/отсутствия неправомерных заимствований показала, что работа неправомерных заимствований не содержит. В ходе работы Е.А.Моисеенко показал себя как грамотный разработчик и перспективный иследователь. Доклад по результатам работы был принят и доложен на конференции SEIM-2016, работа была поддержана грантом компании JetBrains. Цели работы достигнуты в полном объеме, работа заслуживает оценки «отлично».