Корпорация Intel представила новую автоматическую систему машинного программирования Machine Inferred Code Similarity (MISIM), которая способна распознавать, для чего предназначена та или иная часть программного продукта. Система изучает структуру исходного кода и анализирует код программ с аналогичными свойствами, точность ее до 40 раз превосходит современные системы проверки кода. MISIM была разработана Intel совместно с Массачусетским технологическим институтом (MIT) и Технологическим институтом Джорджии.

Как поясняют в компании, современным компьютерам по-прежнему крайне сложно определять степень схожести двух фрагментов программы на основе анализа их исходного кода, а также понимать, что оба фрагмента выполняют одни и те же функции. Система MISIM способна наиболее точно на сегодняшний день определять, когда два фрагмента исходного кода выполняют аналогичные вычисления, даже если они имеют разные алгоритмы и структуру данных. Решение может использоваться для широкого спектра задач – от рекомендаций по программированию до автоматического исправления ошибок.

Ключевое отличие MISIM от существующих систем определения схожего кода –новая контекстно-зависимая семантическая структура (contest-aware semantic structure, CASS). CASS определяет, для чего предназначен тот или иной фрагмент кода, и может быть настроена на определенный контекст – это позволяет эффективнее собирать информацию, описывающую код.

Как только структура кода интегрируется в CASS, несколько нейронных сетей оценивают степень сходства двух фрагментов на основе задач, которые они должны решать. То есть, если две части кода выглядят разными по структуре, но выполняют одни и те же функции, нейросети оценят их как схожие.

Другая особенность MISIM в том, что она не использует компилятор. Это позволяет системе анализировать неполные фрагменты кода, которые находятся в процессе разработки, что является одним из важнейших свойств для реализации системы подсказок и автоматического исправления ошибок.

Объединив все эти подходы в единую систему, исследователи Intel, MIT и Технологического института Джорджии выяснили, что MISIM позволяет до 40 раз точнее идентифицировать схожие фрагменты кода, чем другие существующие сегодня решения.

В настоящее время MISIM находится в стадии доработки, однако проект уже перешел от исследовательской стадии к демонстрационным моделям. Они должны реализовать механизм рекомендаций к исходному коду для программистов, которые создают приложения, работающие в гетерогенных архитектурах. Такая система сможет распознавать задачи разрабатываемого алгоритма непосредственно в процессе его создания и предлагать семантически схожие, но более эффективные варианты его реализации.