Intel andis välja masinõppesüsteemi ControlFlag lähtekoodi, et tuvastada koodis vigu

Intel avalikustas reklaami kaudu ControlFlag uurimisprojektiga seotud arengud, mille eesmärk on luua masinõppesüsteem koodi kvaliteedi parandamiseks.

Tööriist on välja antud MIT-i litsentsi alusel ja see paistab silma selle poolest, et võimaldab suurel hulgal olemasoleval koodil treenitud mudelil tuvastada mitmesuguseid vigu ja kõrvalekaldeid kõrgetasemelistes keeltes, näiteks C / C ++, kirjutatud lähtetekstides.

Süsteem see sobib teie koodis erinevat tüüpi probleemide tuvastamiseks, alates trükivigade ja valede tüübikombinatsioonide tuvastamisest kuni osutite nullväärtuste puuduvate kontrollide ja mäluprobleemide tuvastamiseni.

Süsteem õpib ise, luues statistilise mudeli GitHubis ja sarnastes avalikes hoidlates avaldatud olemasolevast avatud lähtekoodi massiivist. Koolitusetapis määrab süsteem kindlaks tüüpilised mallid koodis struktuuride ülesehitamiseks ja nende mallide vaheliste seoste süntaktilise puu loomiseks, mis peegeldab programmi koodi täitmise voogu. Selle tulemusena moodustub viiteotsuste puu, mis ühendab endas kõigi analüüsitud lähtetekstide arenduskogemuse.

Et muuta ControlFlag laiemale tarkvaraarenduse kogukonnale kättesaadavamaks, on Intelil hea meel teatada, et ControlFlag on nüüd avatud lähtekoodiga ja sellele pääseb juurde aadressil https://github.com/IntelLabs/control-flag. Meil on hea meel anda arendajatele võimalus selle kallal areneda ja vaadata, mida selle äärmiselt väärtusliku ja uuendusliku tehnoloogiaga veel teha saab.

Alates kasutuselevõtust on ControlFlagi testitud tootmistaseme tarkvaras ja laialdaselt kasutatavates avatud lähtekoodiga tarkvarasüsteemides. Näiteks eelmisel aastal tuvastas ControlFlag koodianomaalia Client URL-is (cURL), arvutitarkvara projektis, mis edastab andmeid erinevate võrguprotokollide abil rohkem kui XNUMX miljard korda päevas. Pärast anomaaliast teatamist cURL-i meeskonnale nõustusid nad ControlFlagi leidudega ja parandasid seejärel oma koodi.

Sarnane mustrite määratlemise protsess viiakse läbi testitava koodi jaoks, mida võrreldakse võrdlusotsuste puuga. Suured lahknevused külgnevate harudega näitavad kontrollitava mustri anomaaliat. Samuti võimaldab süsteem mitte ainult mallis viga tuvastada, vaid ka lahendust soovitada. Näiteks koodilõigu "if (x = 7) y = x;" sõelumisel süsteem on kindlaks teinud, et lauses "if" kasutatakse arvuliste väärtuste võrdlemiseks üldiselt konstruktsiooni "muutuja == number", seega on tähis "muutuja = arv" lauses "if" tõenäoliselt põhjustatud trükiveast .

Traditsioonilised staatilised analüsaatorid avastaksid sellise vea, kuid erinevalt neist ei rakenda ControlFlag out-of-the-box reegleid, mille puhul on raske kõiki võimalikke valikuid ette näha, vaid lähtub pigem kõikvõimalike kasutusstatistikast. paljudes projektides.

Eksperimendina kui kasutate cURL-i utiliidi lähtekoodis funktsiooni ControlFlag, sageli tuuakse näitena tõestatud kvaliteetsete koodide staatilised analüsaatorid avastas struktuurielemendi "s-> keepon" kasutamisel tahtmatu vea, millel oli numbriline tüüp, kuid seda võrreldi tõeväärtusega TRUE.

OpenSSL-koodis tuvastati lisaks eelmainitud probleemile "(s1 == NULL) ∧ (s2 == NULL)" anomaaliaid ka avaldistes "(-2 == rv)", mis oli vähemalt kirjaviga .

Samuti on teatatud, et ControlFlagi kasutamine võimaldas tuvastada mitusada mittespetsiifilises patenteeritud tarkvaras viga, mis tõi kaasa krahhe ja mäluprobleeme.

Lõpuks kui olete huvitatud sellest rohkem teada saama, saate üksikasju vaadata Järgmisel lingil. Need, kes on huvitatud lähtekoodi nägemisest, hankimisest või hoidlasse kloonimisest, saavad seda teha järgmine link.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.