Intel uvolnil zdrojový kód ControlFlag systému strojového učení, který má detekovat chyby v kódu

Intel odhalil prostřednictvím reklamy vývoj související s výzkumným projektem ControlFlag, který je určen k vytvoření systému strojového učení pro zlepšení kvality kódu.

Nástroj byl vydán pod licencí MIT a vyniká tím, že umožňuje na základě modelu trénovaného na velkém množství existujícího kódu identifikovat různé chyby a anomálie ve zdrojových textech napsaných v jazycích na vysoké úrovni, jako je C/C++.

Systém je vhodný pro detekci různých typů problémů ve vašem kódu, od detekce typografických chyb a nesprávných kombinací typů po identifikaci chybějících kontrol na nulové hodnoty v ukazatelích a problémy s pamětí.

Systém se sám učí vytvářením statistického modelu ze stávajícího pole open source kódu publikovaného na GitHubu a podobných veřejných úložištích. Ve fázi školení systém určuje typické šablony vytvořit struktury v kódu a vytvořit syntaktický strom spojení mezi těmito šablonami, odrážející tok provádění kódu v programu. Výsledkem je vytvoření referenčního rozhodovacího stromu, který kombinuje vývojové zkušenosti všech analyzovaných zdrojových textů.

Aby byl ControlFlag dostupnější pro širší komunitu vývojářů softwaru, Intel s potěšením oznamuje, že ControlFlag je nyní open source a je přístupný na https://github.com/IntelLabs/control-flag. Jsme potěšeni, že můžeme vývojářům poskytnout příležitost vyvíjet se na něm a zjistit, co dalšího lze s touto nesmírně cennou a inovativní technologií dělat.

Od svého zavedení byl ControlFlag testován v softwaru na produkční úrovni a široce používaných softwarových systémech s otevřeným zdrojovým kódem. Například v loňském roce společnost ControlFlag identifikovala anomálii kódu v Client URL (cURL), což je projekt počítačového softwaru, který přenáší data pomocí různých síťových protokolů více než XNUMX miliardukrát denně. Po nahlášení anomálie týmu cURL souhlasili se zjištěními ControlFlag a následně opravili svůj kód.

Podobný proces definování vzorů se provádí pro testovaný kód, který je porovnáván s referenčním rozhodovacím stromem. Velké nesrovnalosti se sousedními větvemi indikují anomálii v ověřovaném vzoru. Systém také umožňuje nejen identifikovat chybu v šabloně, ale také navrhnout řešení. Například při analýze fragmentu kódu „if (x = 7) y = x;“ systém zjistil, že konstrukce "proměnná == číslo" se obecně používá ve výrazu "if" k porovnání číselných hodnot, takže údaj "proměnná = číslo" ve výrazu "if" je pravděpodobně způsoben tiskovou chybou .

Tradiční statické analyzátory by takovou chybu odhalily, ale na rozdíl od nich ControlFlag neuplatňuje předem připravená pravidla, ve kterých je obtížné předvídat všechny možné možnosti, ale vychází spíše ze statistik využití všeho druhu. ve velkém počtu projektů.

Jako experiment, při použití ControlFlag ve zdrojovém kódu obslužného programu cURL, to často je uveden jako příklad osvědčených, vysoce kvalitních kódových, statických analyzátorů odhalil neúmyslnou chybu při použití prvku struktury "s-> keepon", který měl číselný typ, ale byl porovnán s booleovskou hodnotou TRUE.

V kódu OpenSSL byly kromě výše uvedeného problému s "(s1 == NULL) ∧ (s2 == NULL)" detekovány anomálie také ve výrazech "(-2 == rv)", což bylo alespoň překlep.

Uvádí se také, že použití ControlFlag umožnilo identifikovat několik stovek chyb v nespecifickém proprietárním softwaru, což vedlo k pádům a problémům s pamětí.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti Na následujícím odkazu. Pokud jde o ty, kteří mají zájem vidět zdrojový kód, získat jej nebo naklonovat v úložišti, mohou tak učinit z následující odkaz.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.