ControlFlag: ett kodfelsökningsverktyg

Intel har släppt släpper den betydande versionen av ControlFlag 1.0, Vilket är en mjukvarukontrollsystem upptäcka fel och anomalier i din kod källa med hjälp av ett maskininlärningssystem tränat på en stor mängd befintlig kod.

Till skillnad från traditionella statiska analysatorer, ControlFlag tillämpar inte fördefinierade regler, där det är svårt att förutse alla möjliga alternativ, utan snarare del av statistiken över användning av alla typer av konstruktioner språk i ett stort antal befintliga projekt.

Enligt forskning sker att hitta och ta bort buggar i kod oftast manuellt och tar mer än 50 % av utvecklarnas arbetstid. 

Verktyget lär sig att identifiera och märka dessa stilistiska alternativ, och du kan anpassa felidentifiering och fixa rekommendationer baserat på din kunskap, vilket minimerar ControlFlag dåliga kodkarakteriseringar som helt enkelt kan vara en stilistisk avvikelse mellan två team av utvecklare. .

Om ControlFlag

Systemet tränas genom att bygga en statistisk modell från den befintliga källkodsmatrisen öppen publicerad på GitHub och liknande offentliga arkiv. I utbildningsstadiet bestämmer systemet typiska mallar för att bygga strukturer i koden och bygger ett syntaktiskt träd av kopplingar mellan dessa mallar, vilket återspeglar flödet av kodexekvering i programmet.

Som ett resultat av detta bildas ett referensbeslutsträd, som kombinerar utvecklingserfarenheten från alla analyserade källtexter. En liknande mönstersättningsprocess utförs för koden som testas, som jämförs med ett referensbeslutsträd. Stora avvikelser med intilliggande grenar indikerar en anomali i mönstret som verifieras.

Av egenskaperna Av versionen ControlFlag 1.0, fullt stöd för C-mallar är markerat och förmågan att upptäcka anomalier i villkorliga "om"-uttalanden.

Till exempel, när du analyserar kodavsnittet "if (x = 7) y = x;" systemet kommer att upptäcka att konstruktionen "variabel == nummer" vanligtvis används i satsen "if" för att jämföra numeriska värden, så indikationen "variabel = nummer" i satsen "if" orsakas troligen av ett typografiskt fel.

Satsen tillhandahåller ett skript som tillåter nedladdning av C-arkiven som finns tillgängliga på GitHub och använda dem för att bygga en modell. Det finns också färdiga modeller som gör att du kan börja kontrollera koden direkt

Systemet ingår i forskningsprojektet Maskinprogrammering (MPR) från Intel, vars främsta mål är att minska tiden som krävs för mjukvaruutveckling med 1000 gånger på grund av automatisering.

Speciellt arbetar Intel för närvarande med att träna Controlflag för att automatiskt korrigera upptäckta fel. Även 2020 släppte företaget MISIM-verktyget, utvecklat i samarbete med MIT-labb, som kan studera kodsnuttar för att förstå vad en kod är avsedd att göra. Systemet är tänkt att användas för att ge utvecklare sätt att förbättra kodeffektiviteten.

"Debugging förväntas orsaka ännu mer skada för utvecklare och branschen som helhet", sa Intel. Meddelande... "När det är fullt implementerat kan ControlFlag hjälpa till att mildra denna utmaning genom att automatisera besväret med mjukvaruutveckling som testning, övervakning och felsökning."

“Den största fördelen med ControlFlags oövervakade tillvägagångssätt för mönsterigenkänning är att du i grunden kan lära dig att anpassa dig till utvecklarens stil. Eftersom programmet har begränsad input till de kontrollverktyg du behöver utvärdera. ControlFlag kan identifiera typografiska variationer i programmeringsspråk på samma sätt som läsare kan känna igen fullständiga skillnader mellan ord och använda engelska förkortningar”, skriver Intel.

Slutligen om du är intresserad av att veta mer om det Om ControlFlag bör du veta att den är skriven i C++ och är öppen källkod under MIT-licensen och dess kod finns på GitHub.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.