Intel on avaldanud ControlFlag 1.2 tööriista, mis võimaldab tuvastada vigu ja anomaaliaid lähtekoodis, kasutades masinõppesüsteemi, mis on treenitud suure hulga olemasoleva koodi peal. Erinevalt traditsioonilistest staatilistest analüüsijatest, ei rakenda ControlFlag valmisreegleid, kus on keeruline ette näha kõiki võimalikke variante, vaid tugineb statistikatele, mis põhinevad erinevate keelekonstruktsioonide kasutamisel suures hulgas olemasolevates projektides. ControlFlag kood on kirjutatud C++ keeles ja avatud MIT litsentsi alusel.
Uus väljalase paistab silma täieliku toe rakendamisega anomaaliate tuvastamiseks ja koodimallide alusel õppimiseks C++ keeles. Varasemates versioonides oli sarnane tugi tagatud C ja PHP keeltele. Süsteem sobib erinevate probleemide tuvastamiseks koodis, alates trükivigade ja vale tüüpide kombinatsioonide määramisest kuni anomaaliate tuvastamiseni «if» tingimuste väljendites ja tühjade näitajate väärtuse NULL kontrollide vahelejätmiseni. Süsteem õpib, luues statistilisi mudeleid olemasoleva C, C++ ja PHP avatud projektide koodihulgast, mis on avaldatud GitHubis ja sarnastes avalikes hoidlates.
Õppeprotsessi käigus määrab süsteem koodistruktuuride tavalised mustrid ja koostab süntaktilise puu seoste vahel nende mustrite, peegeldades koodi täitmise voogu programmis. Lõpptulemusena moodustub referentsotsustuste puu, mis ühendab kõigi analüüsitud lähtekoodide arendusprotsesside kogemused. Kontrollitava koodi puhul viiakse läbi sarnane mustrite määramise protsess, mis võrreldakse referentsotsustuste puuga. Suured lahknevused naaberharudega viitavad anomaalia olemasolule kontrollitavas mustris.

Allikas: opennet.ru
