ControlFlag — исследовательская система машинного программирования

 

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

«Мы думаем, что ControlFlag — это новый мощный инструмент, который может значительно сократить время и деньги, необходимые для отладки кода. Согласно исследованиям, разработчики программного обеспечения тратят примерно 50% времени на отладку. С ControlFlag и подобными ему системами я представляю себе мир, в котором программисты тратят заметно меньше времени на отладку и больше времени на то, что, по моему мнению, у программистов лучше всего получается — выражение творческих, новых идей машинам », собщил Джастин Готчлих (Главный научный сотрудник и директор отдела исследований машинного программирования в Intel Labs).

В современном мире, в котором все чаще используется программное обеспечение, разработчики продолжают тратить непропорционально много времени на исправление ошибок, а не на кодирование. Подсчитано, что из 1,25 триллиона долларов, которые разработка программного обеспечения обходится ИТ-индустрии каждый год, 50 процентов тратится на отладку кода.

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

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

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

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

Ключевым преимуществом неконтролируемого подхода ControlFlag к распознаванию образов является то, что он может научиться приспосабливаться к стилю разработчика. Имея ограниченные входные данные для инструментов управления, которые должна оценивать программа, ControlFlag может определять стилистические вариации в языке программирования, аналогично тому, как читатели распознают различия между полными словами или сокращениями в тексте.

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

Источник: www.newsroom.intel.com