Шутка не сходит с конвейера, она клеится индивидуально.
Шутка не сходит с конвейера, она клеится индивидуально.
В рамках Intel Labs Day компания Intel представила ControlFlag — аналитическую систему машинного программирования, способную самостоятельно обнаруживать ошибки в программном коде. Для этого решение использует машинное программирование, сплав машинного обучения, формальных методов, языков программирования, компиляторов и компьютерных систем. Так, в ходе предварительных испытаний ControlFlag проанализировала более 1 млрд. немаркированных строк промышленного кода и обнаружила в них новые дефекты.
Как это работает. В своей работе ControlFlag использует специфическую функцию – «выявление аномалий». Подобно тому, как люди, наблюдая определённые закономерности в обычной жизни, учатся считать их «нормальными», ControlFlag обучается на заранее проверенных примерах определять «нормальные» паттерны, выявляя на их основе аномалии в коде. ControlFlag способна обнаруживать их независимо от используемого языка программирования.
Одно из ключевых преимуществ метода самообучения ControlFlag для распознавания паттернов – это способность программы адаптироваться к стилю разработчика. ControlFlag способна определять даже стилистические вариации в языке программирования — аналогично тому, как читатели распознают различия между полными словами и их сокращениями.
В процессе работы ControlFlag учится определять и маркировать стилистические варианты кода. Решение также может настраивать идентификацию ошибок и выдавать рекомендации по их устранению, опираясь на собственные знания. Эти опции помогают ControlFlag не считать за ошибку стилистические вариации кода, используемые разными командами разработчиков.
Почему это важно. В мире, который все больше зависит от ПО, разработчики продолжают тратить непропорционально много времени на исправление ошибок в коде. Из $1,25 трлн, которые IT-индустрия ежегодно тратит на разработку ПО, на отладку кода уходит порядка 50% средств.
Ожидается, что в будущем задача отладки кода будет ещё сильнее влиять на разработчиков и IT-индустрию в целом. По мере развития технологий возрастает роль гетерогенных архитектур, в которых используются специализированные процессоры для управления большими массивами данных. Параллельно усложняется и программное обеспечение, необходимое для управления такими системами – это значительно повышает риск возникновения ошибок. Кроме того, все сложнее найти специалистов с опытом безошибочного, эффективного и безопасного программирования на различном оборудовании. Это также повышает риск появления новых и трудно обнаруживаемых ошибок в коде.
Как только ControlFlag будет полностью реализован, он сможет решить эту проблему путём автоматизации тестирования, мониторинга и отладки кода. Это не только повысит продуктивность разработчиков, предоставив им больше времени для творчества, но и поможет решить проблему высокой стоимости разработки ПО.
Что дальше. ControlFlag уже продемонстрировал способность выявлять скрытые ошибки в широко используемом промышленном коде, который заранее проверили разработчики. Например, ControlFlag проанализировал cURL и выявил неизвестную ранее аномалию. В результате это побудило разработчиков cURL выпустить исправленную версию инструмента.
Компания Intel начала использовать ControlFlag для выявления ошибок в процессе создания собственного ПО и прошивок. Это один из ключевых элементов проекта Intel Rapid Analysis for Developers, задача которого — повысить производительность путём предоставления экспертной поддержки.
Ранее Intel представила автоматическую систему машинного программирования – Machine Inferred Code Similarity (MISIM), которая способна распознавать, для чего предназначена та или иная часть программного продукта.
Больше информации:
Адрес редакции: 117997, Москва, Профсоюзная ул., д. 65, оф. 360
Телефон: (926) 212-60-97.
E-mail: info@avtprom.ru или avtprom@ipu.ru
© ООО Издательский дом "ИнфоАвтоматизация", 2003-2024 гг.