Az Intel kiadta a ControlFlag gépi tanulási rendszer forráskódját a kód hibáinak észlelésére

Az Intel bemutatta reklám útján a ControlFlag kutatási projekttel kapcsolatos fejlesztések, amelynek célja egy gépi tanulási rendszer létrehozása a kód minőségének javítása érdekében.

Az eszközt az MIT licence alatt adták ki és kiemelkedik abból, hogy egy nagy mennyiségű meglévő kódra kiképzett modell alapján lehetővé teszi a különféle hibák és anomáliák azonosítását a magas szintű nyelveken, például C / C ++-ban írt forrásszövegekben.

A rendszer alkalmas a kódban előforduló különféle típusú problémák észlelésére, a tipográfiai hibák és helytelen típuskombinációk észlelésétől a mutatókban lévő nullértékek hiányzó ellenőrzéséig és a memóriaproblémákig.

A rendszer statisztikai modell felépítésével magától tanul a GitHubon és hasonló nyilvános tárhelyeken közzétett nyílt forráskódok meglévő tömbjéből. A képzési szakaszban a rendszer tipikus sablonokat határoz meg struktúrák felépítéséhez a kódban, és szintaktikai fát épít fel e sablonok közötti kapcsolatokból, tükrözve a programban a kódvégrehajtás folyamatát. Ennek eredményeként egy hivatkozási döntési fa jön létre, amely egyesíti az összes elemzett forrásszöveg fejlesztési tapasztalatait.

Annak érdekében, hogy a ControlFlag-ot elérhetőbbé tegye a szélesebb szoftverfejlesztő közösség számára, az Intel örömmel jelenti be, hogy a ControlFlag immár nyílt forráskódú, és a https://github.com/IntelLabs/control-flag címen érhető el. Örömünkre szolgál, hogy lehetőséget adunk a fejlesztőknek, hogy fejlesszenek rajta, és megnézzük, mit lehet még tenni ezzel a rendkívül értékes és innovatív technológiával.

Bevezetése óta a ControlFlag-ot termelési szintű szoftverekben és széles körben használt nyílt forráskódú szoftverrendszerekben tesztelték. Például tavaly a ControlFlag kód anomáliát azonosított a Client URL-ben (cURL), egy számítógépes szoftverprojektben, amely naponta több mint XNUMX milliárd alkalommal továbbít adatokat különféle hálózati protokollok segítségével. Miután jelentették az anomáliát a cURL csapatának, egyetértettek a ControlFlag megállapításaival, és ezt követően javították a kódjukat.

A minták meghatározásához hasonló folyamatot hajtanak végre a tesztelt kódnál, amelyet összehasonlítunk egy referencia-döntési fával. A szomszédos ágaktól való nagy eltérések az ellenőrzött minta anomáliáját jelzik. A rendszer azt is lehetővé teszi, hogy ne csak a sablon hibáját azonosítsa, hanem megoldást is javasoljon. Például az "if (x = 7) y = x;" kódrészlet elemzésekor a rendszer megállapította, hogy a "változó == szám" konstrukciót általában az "if" utasításban használják a számértékek összehasonlítására, így az "if" utasításban szereplő "változó = szám" jelölést valószínűleg tipográfiai hiba okozza.

A hagyományos statikus analizátorok észlelnének egy ilyen hibát, de velük ellentétben a ControlFlag nem alkalmaz "out-of-the-box" szabályokat, amelyekben nehéz minden lehetséges opciót előre látni, hanem mindenféle felhasználási statisztikákból indul ki. nagyszámú projektben.

Kísérletként, a ControlFlag használatakor a cURL segédprogram forráskódjában, gyakran példaként említik bevált, jó minőségű kódú, statikus analizátorok véletlen hibát tárt fel az "s-> keepon" szerkezeti elem használatakor, amelynek numerikus típusa volt, de összehasonlították a TRUE logikai értékkel.

Az OpenSSL kódban a fent említett "(s1 == NULL) ∧ (s2 == NULL)" probléma mellett a "(-2 == rv)" kifejezésekben is anomáliákat észleltek, ami legalább egy gépelési hiba.

Arról is beszámoltak, hogy a ControlFlag használata lehetővé tette a nem specifikus védett szoftverek több száz hibájának azonosítását, ami összeomláshoz és memóriaproblémákhoz vezetett.

Végül ha érdekel, hogy többet tudjon meg róla, ellenőrizheti a részleteket A következő linken. Azok pedig, akik szeretnék látni a forráskódot, beszerezni vagy lerakatban klónozni, ezt megtehetik a következő link.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.