ControlFlag: інструмент для налагодження коду

Intel випустила випуск значущої версії ControlFlag 1.0, який є а програмна система управління дозволяє виявляти помилки та аномалії у вашому коді джерело з використанням системи машинного навчання, навченої на великій кількості існуючого коду.

На відміну від традиційних статичних аналізаторів, ControlFlag не застосовує попередньо визначені правила, в якому важко передбачити всі можливі варіанти, а скоріше частина статистики використання всіх видів конструкцій мови у великій кількості існуючих проектів.

Згідно з дослідженнями, пошук і видалення помилок у коді найчастіше здійснюється вручну і займає більше 50% робочого часу розробників. 

Інструмент навчається, як визначити та позначити ці стилістичні параметри, і ви можете налаштувати ідентифікацію помилок та виправити рекомендації на основі ваших знань, мінімізуючи характеристики поганого коду ControlFlag, які можуть бути просто стилістичним відхиленням між двома командами розробників. .

Про ControlFlag

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

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

З характеристик З версії ControlFlag 1.0, виділено повну підтримку шаблонів C і здатність виявляти аномалії в умовних висловлюваннях «якщо».

Наприклад, під час розбору фрагмента коду "if (x = 7) y = x;" система виявить, що конструкція "змінна == число" зазвичай використовується в операторі "if" для порівняння числових значень, тому вказівка ​​"змінна = число" в операторі "if", ймовірно, викликана друкарською помилкою.

Комплект надає скрипт, який дозволяє завантажувати репозиторії C, доступні на GitHub і використовувати їх для створення моделі. Також доступні готові до роботи моделі, що дає змогу негайно почати перевірку коду

Система є частиною дослідницького проекту машинного програмування (MPR) від Intel, основна мета якого – скоротити час, необхідний для розробки програмного забезпечення, в 1000 разів завдяки автоматизації.

Зокрема, зараз Intel працює над тим, щоб навчити Controlflag автоматично виправляти виявлені помилки. Також у 2020 році компанія випустила інструмент MISIM, розроблений спільно з лабораторіями MIT, який може вивчати фрагменти коду, щоб зрозуміти, що намагається зробити фрагмент коду. Система призначена для надання розробникам способів підвищення ефективності коду.

«Очікується, що налагодження завдасть ще більшої шкоди розробникам та індустрії в цілому», – заявила Intel. Оголошення… «Після повної реалізації ControlFlag може допомогти пом’якшити цю проблему, автоматизуючи клопоти розробки програмного забезпечення, такі як тестування, моніторинг та налагодження».

«Головна перевага неконтрольованого підходу ControlFlag до розпізнавання шаблонів полягає в тому, що ви можете по суті навчитися пристосовуватися до стилю розробника. Оскільки програма має обмежений вхід до інструментів керування, які потрібно оцінити. ControlFlag може ідентифікувати типографічні варіації в мовах програмування так само, як читачі можуть розпізнавати повні відмінності між словами та використовувати англійські скорочення», — пише Intel.

В кінці кінців якщо вам цікаво дізнатись більше про це Про ControlFlag слід знати, що він написаний на C++ і є відкритим вихідним кодом під ліцензією MIT і його кодом розміщено на GitHub.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.