Intel izlaida mašīnmācīšanās sistēmas ControlFlag pirmkodu, lai atklātu kļūdas kodā

Intel atklāja izmantojot sludinājumu attīstība saistībā ar ControlFlag pētniecības projektu, kuras mērķis ir izveidot mašīnmācīšanās sistēmu, lai uzlabotu koda kvalitāti.

Rīks ir izdots saskaņā ar MIT licenci un tas izceļas ar to, ka, pamatojoties uz modeli, kas apmācīts uz liela daudzuma esošā koda, ļauj identificēt dažādas kļūdas un anomālijas avota tekstos, kas rakstīti augsta līmeņa valodās, piemēram, C / C ++.

Sistēma tas ir piemērots dažādu veidu problēmu noteikšanai jūsu kodā, no drukas kļūdu un nepareizu tipu kombināciju noteikšanas līdz trūkstošo nulles vērtību pārbaužu noteikšanai rādītājos un atmiņas problēmām.

Sistēma mācās pati, veidojot statistikas modeli no esošā atvērtā pirmkoda masīva, kas publicēts vietnē GitHub un līdzīgos publiskajos krātuvēs. Apmācības posmā sistēma nosaka tipiskas veidnes veidot struktūras kodā un izveidot sintaktisko savienojumu koku starp šīm veidnēm, atspoguļojot koda izpildes plūsmu programmā. Rezultātā tiek veidots atsauces lēmumu koks, kas apvieno visu analizēto avota tekstu izstrādes pieredzi.

Lai padarītu ControlFlag pieejamāku plašākai programmatūras izstrādes kopienai, Intel ar prieku paziņo, ka ControlFlag tagad ir atvērtā koda avots un tam var piekļūt vietnē https://github.com/IntelLabs/control-flag. Mēs esam priecīgi sniegt izstrādātājiem iespēju to attīstīt un redzēt, ko vēl var paveikt ar šo ārkārtīgi vērtīgo un novatorisko tehnoloģiju.

Kopš ieviešanas ControlFlag ir testēts ražošanas līmeņa programmatūrā un plaši izmantotās atvērtā pirmkoda programmatūras sistēmās. Piemēram, pagājušajā gadā ControlFlag atklāja koda anomāliju Client URL (cURL), datora programmatūras projektā, kas pārsūta datus, izmantojot dažādus tīkla protokolus vairāk nekā XNUMX miljardu reižu dienā. Pēc ziņošanas par anomāliju cURL komandai viņi piekrita ControlFlag konstatējumiem un pēc tam laboja savu kodu.

Līdzīgs modeļu noteikšanas process tiek veikts pārbaudāmajam kodam, kas tiek salīdzināts ar atsauces lēmumu koku. Lielas neatbilstības ar blakus esošajiem zariem norāda uz pārbaudāmā modeļa anomāliju. Sistēma arī ļauj ne tikai identificēt kļūdu veidnē, bet arī ieteikt risinājumu. Piemēram, parsējot koda fragmentu "if (x = 7) y = x;" sistēma ir noteikusi, ka skaitlisko vērtību salīdzināšanai priekšrakstā "ja" parasti tiek izmantota konstrukcija "mainīgais == skaitlis", tāpēc norāde "mainīgais = skaitlis" priekšrakstā "ja", iespējams, ir radusies drukas kļūdas dēļ.

Tradicionālie statiskie analizatori atklātu šādu kļūdu, taču atšķirībā no tiem ControlFlag nepiemēro kārtējos noteikumus, kuros ir grūti paredzēt visas iespējamās iespējas, bet gan sāk no visu veidu izmantošanas statistikas. daudzos projektos.

Kā eksperiments, izmantojot ControlFlag cURL utilīta avota kodā, ka bieži tiek minēts kā piemērs pārbaudīts, augstas kvalitātes kods, statiskie analizatori atklāja netīšu kļūdu, izmantojot struktūras elementu "s-> keepon", kurai bija skaitlisks tips, bet tika salīdzināta ar Būla vērtību TRUE.

OpenSSL kodā papildus iepriekš minētajai problēmai ar "(s1 == NULL) ∧ (s2 == NULL)" anomālijas tika konstatētas arī izteiksmēs "(-2 == rv)", kas bija vismaz drukas kļūda.

Tāpat tiek ziņots, ka ControlFlag izmantošana ļāva identificēt vairākus simtus kļūdu nespecifiskā patentētā programmatūrā, kas izraisīja avārijas un atmiņas problēmas.

Beidzot ja jūs interesē uzzināt vairāk par to, varat pārbaudīt informāciju Šajā saitē. Tie, kas vēlas redzēt avota kodu, iegūt to vai klonēt to repozitorijā, viņi to var darīt no plkst. šo saiti.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.