Intel опублікував ControlFlag 1.2, інструмент виявлення аномалій у вихідних текстах

Компанія Intel опублікувала випуск інструментарію ControlFlag 1.2, що дозволяє виявляти помилки та аномалії у вихідних текстах, використовуючи систему машинного навчання, натреновану на великому обсязі існуючого коду. На відміну від традиційних статичних аналізаторів, ControlFlag не застосовує готових правил, у яких важко передбачити всі можливі варіанти, а відштовхується від статистики використання різноманітних мовних конструкцій у великій кількості існуючих проектів. Код ControlFlag написаний мовою С++ та відкрито під ліцензією MIT.

Новий випуск примітний реалізацією повної підтримки виявлення аномалій та навчання на основі типових шаблонів коду для мови С++. У попередніх версіях подібна підтримка була забезпечена мовами C і PHP. Система підходить для визначення в коді різних видів проблем, від визначення друкарських помилок і неправильного поєднання типів, до виявлення аномалій в умовних виразах «if» і пропущених перевірок значення NULL в покажчиках. Система навчається шляхом побудови статистичної моделі наявного масиву коду відкритих проектів мовами C, C++ та PHP, опублікованих у GitHub та подібних публічних репозиторіях.

На стадії навчання система визначає типові шаблони побудови конструкцій у коді та будує синтаксичне дерево зв'язків між цими шаблонами, що відображає потік виконання коду у програмі. У результаті формується еталонне дерево прийняття рішень, що поєднує досвід розробки всіх проаналізованих вихідних текстів. Для коду, що перевіряється, виконується схожий процес визначення шаблонів, які звіряються з еталонним деревом прийняття рішень. Великі розбіжності із сусідніми гілками свідчать про наявність аномалії в шаблоні, що перевіряється.

Intel опублікував ControlFlag 1.2, інструмент виявлення аномалій у вихідних текстах


Джерело: opennet.ru

Додати коментар або відгук