Intel ControlFlag — система машинной отладки человеческих ошибок кода

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Человеку, как известно, свойственно ошибаться. Самые вопиющие ошибки попадают в учебники, а с миллионами остальных нам приходится как-то жить и тратить свой рабочий ресурс на их исправление. По подсчетам исследователей из Университета Пенсильвании, на отладку кода уходит порядка 50% бюджета разработки ПО. Это чудовищно много, но надежда у человечества все-таки есть — будущее за машинными дебаггерами. На прошедшей совсем недавно конференции Intel Labs Day Intel представила ControlFlag — аналитическую систему машинного программирования, способную самостоятельно обнаруживать ошибки в программном коде.



В своей работе Intel ControlFlag использует машинное обучение, формальные методы распознавания, а также свои знания языков программирования, компиляторов и компьютерных систем. В ходе предварительных испытаний ControlFlag изучила более 1 млрд. немаркированных строк продакшен-кода и уже на этом этапе умудрилась обнаружить в них ряд пропущенных дефектов. Например, была проанализирована широко используемая утилита cURL и выявлена неизвестная ранее аномалия. В результате это побудило разработчиков cURL выпустить исправленную версию инструмента.

Специфическим функционалом аналитической системы является выявление аномалий. Находясь в привычной природной среде, мы наблюдаем в ней определенные закономерности, и, соответственно, учимся считать их нормальными. Аналогичным образом и ControlFlag обучается на заранее проверенных примерах определять «нормальные» паттерны, выявляя на их основе аномалии в коде. ControlFlag способна обнаруживать их независимо от используемого языка программирования.

Методика самообучения ControlFlag для распознавания паттернов способна адаптироваться к стилю разработчика. ControlFlag может определять даже стилистические вариации в языке программирования — аналогично тому, как читатели распознают различия между полными словами и их сокращениями. Решение также может настраивать идентификацию ошибок и выдавать рекомендации по их устранению, опираясь на собственные знания. Эти опции помогают ControlFlag не считать за ошибку стилистические вариации кода, используемые разными командами разработчиков.

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

Как только ControlFlag будет полностью реализован, он сможет решить эту проблему путем автоматизации тестирования, мониторинга и отладки кода. Это не только повысит продуктивность разработчиков, предоставив им больше времени для творчества, но и поможет решить проблему высокой стоимости разработки ПО.

Как вы понимаете, публичная история Intel ControlFlag еще только начинается, информации о системе пока еще совсем мало. Нам очень интересна эта тема — надеемся, и вам тоже. Мы твердо рассчитываемся к ней вернуться — уже с конкретными фактами и данными.
Источник: https://habr.com/ru/company/intel/blog/531862/


Интересные статьи

Интересные статьи

Одно из первых наставлений, которое молодой падаван получает вместе с доступом к git-репозиториям, звучит так: «никогда не ешь жёлтый снег делай git push -f». Поскольку это одна и...
В июне 1978 года был представлен один из самых влиятельных чипов в полупроводниковой индустрии – Intel 8086. Он положил начало архитектуре х86, которая до сих пор доминирует сегодня в...
Группа физиков из Австралии, Сингапура и Китая разработала технологию управления квантовым состоянием фотонов в вакуумном шуме. В перспективе решение увеличит точность квантовых вычислений. Ра...
Существует класс приложений реального времени, для которых тяжело предсказать потребности в распределении памяти во время выполнения статически. В этот класс входят, например, встраиваемые реализ...
Привет, Хабр! Хочу поделится своей историей запуска мобильной игры. Это история о сотрудничестве с издателем, в которой я хочу рассказать о подводных камнях, подстерегающих инди-разработчика во в...