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
