Intel анонсировала MISIM — новую систему машинного программирования

Intel представила новую автоматическую систему машинного программирования Machine Inferred Code Similarity (MISIM), которая способна распознавать, для чего предназначена та или иная часть программного продукта.

Для этого система изучает структуру исходного кода и анализирует код программ с аналогичными свойствами. Точность MISIM до 40 раз превосходит современные системы проверки кода. Решение может использоваться для широкого спектра задач – от рекомендаций по программированию до автоматического исправления ошибок. MISIM была разработана Intel совместно с Массачусетским технологическим институтом (MIT) и Технологическим институтом Джорджии.

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

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

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

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

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

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


[1] Машинное программирование призвано повысить производительность разработки программного ПО за счет автоматизации процессов. Ключевой технологией в новых инструментах машинного программирования является анализ схожести кода. В перспективе он поможет эффективно автоматизировать некоторые процессы в разработке ПО.

[2] Инструмент, который переводит понятный человеку текст программы в исполняемый машинный код.

Тематики: ПО

Ключевые слова: программирование, Intel