Spoločnosť Intel vydala zdrojový kód systému strojového učenia ControlFlag na detekciu chýb v kóde

Intel odhalil prostredníctvom inzerátu vývoj súvisiaci s výskumným projektom ControlFlag, ktorý je určený na vytvorenie systému strojového učenia na zlepšenie kvality kódu.

Nástroj bol vydaný pod licenciou MIT a vyniká tým, že umožňuje na základe modelu trénovaného na veľkom množstve existujúceho kódu identifikovať rôzne chyby a anomálie v zdrojových textoch napísaných v jazykoch na vysokej úrovni, ako je C / C ++.

Systém je vhodný na zisťovanie rôznych typov problémov vo vašom kóde, od detekcie typografických chýb a nesprávnych kombinácií typov až po identifikáciu chýbajúcich kontrol nulových hodnôt v ukazovateľoch a problémy s pamäťou.

Systém sa sám učí vytváraním štatistického modelu z existujúceho poľa otvoreného zdrojového kódu publikovaného na GitHub a podobných verejných úložiskách. Vo fáze tréningu systém určuje typické šablóny vybudovať štruktúry v kóde a vytvoriť syntaktický strom spojení medzi týmito šablónami, odrážajúci tok vykonávania kódu v programe. Výsledkom je vytvorenie referenčného rozhodovacieho stromu, ktorý kombinuje vývojové skúsenosti všetkých analyzovaných zdrojových textov.

Aby bol ControlFlag dostupnejší pre širšiu komunitu vývojárov softvéru, Intel s potešením oznamuje, že ControlFlag je teraz open source a je dostupný na https://github.com/IntelLabs/control-flag. Sme radi, že vývojárom dávame príležitosť vyvíjať sa na ňom a vidieť, čo ešte možno urobiť s touto mimoriadne hodnotnou a inovatívnou technológiou.

Od svojho uvedenia bol ControlFlag testovaný na produkčnom softvéri a široko používaných softvérových systémoch s otvoreným zdrojovým kódom. Napríklad minulý rok spoločnosť ControlFlag identifikovala anomáliu kódu v Client URL (cURL), počítačovom softvérovom projekte, ktorý prenáša údaje pomocou rôznych sieťových protokolov viac ako XNUMX miliardu krát za deň. Po nahlásení anomálie tímu cURL súhlasili so zisteniami ControlFlag a následne opravili svoj kód.

Podobný proces definovania vzorov sa vykonáva pre testovaný kód, ktorý sa porovnáva s referenčným rozhodovacím stromom. Veľké rozdiely so susednými vetvami naznačujú anomáliu vo vzore, ktorý sa overuje. Systém tiež umožňuje nielen identifikovať chybu v šablóne, ale aj navrhnúť riešenie. Napríklad pri analýze útržku kódu „if (x = 7) y = x;“ systém zistil, že konštrukcia „premenná == číslo“ sa vo výraze „ak“ vo všeobecnosti používa na porovnanie číselných hodnôt, takže údaj „premenná = číslo“ vo výraze „ak“ je pravdepodobne spôsobený tlačovou chybou .

Tradičné statické analyzátory by takúto chybu odhalili, ale na rozdiel od nich ControlFlag neuplatňuje štandardné pravidlá, v ktorých je ťažké predvídať všetky možné možnosti, ale vychádza zo štatistík používania všetkých druhov vo veľkom počte projektov.

Ako experiment, pri použití ControlFlag v zdrojovom kóde pomôcky cURL, to často sa uvádza ako príklad osvedčených, vysokokvalitných kódových, statických analyzátorov odhalila neúmyselnú chybu pri použití prvku štruktúry "s-> keepon", ktorý mal číselný typ, ale bol porovnaný s boolovskou hodnotou TRUE.

V kóde OpenSSL sa okrem spomínaného problému s "(s1 == NULL) ∧ (s2 == NULL)" zistili anomálie aj vo výrazoch "(-2 == rv)", čo bol prinajmenšom preklep .

Uvádza sa tiež, že použitie ControlFlag umožnilo identifikovať niekoľko stoviek chýb v nešpecifickom proprietárnom softvéri, čo viedlo k zlyhaniam a problémom s pamäťou.

Konečne ak máte záujem dozvedieť sa o tom viac, môžete skontrolovať podrobnosti Na nasledujúcom odkaze. Pokiaľ ide o tých, ktorí majú záujem vidieť zdrojový kód, získať ho alebo ho naklonovať v úložisku, môžu tak urobiť od nasledujúci odkaz.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.