Företaget Intel har slÀppt verktyget ControlFlag 1.2, som möjliggör upptÀckten av fel och anomalier i kÀlltexter, med hjÀlp av ett maskininlÀrningssystem som har trÀnats pÄ en stor mÀngd existerande kod. Till skillnad frÄn traditionella statiska analysatorer tillÀmpar ControlFlag inte fasta regler som kan vara svÄra att förutse alla möjliga scenarier för, utan baserar sig pÄ statistiken av anvÀndningen av olika sprÄkstrukturer i mÄnga befintliga projekt. Koden för ControlFlag Àr skriven i C++ och Àr öppen under MIT-licensen.
Den nya versionen Àr anmÀrkningsvÀrd för att den implementerar full stöd för att upptÀcka anomalier och trÀna baserat pÄ typiska kodmönster för C++. I tidigare versioner har liknande stöd funnits för sprÄken C och PHP. Systemet Àr lÀmpligt för att identifiera olika typer av problem i koden, frÄn att upptÀcka typografiska fel och felaktiga typkombinationer, till att identifiera anomalier i 'if'-villkor och missade kontroller av NULL-vÀrden i pekare. Systemet trÀnas genom att bygga en statistisk modell av den befintliga koden frÄn öppna projekt publicerade pÄ C, C++ och PHP pÄ GitHub och liknande offentliga repon.
Under trÀningsfasen bestÀmmer systemet typiska mönster för konstruktioner i koden och bygger ett syntaktiskt trÀd med samband mellan dessa mönster, vilket speglar programflödet i koden. I slutÀndan skapas ett referenstrÀd för beslutsfattande som integrerar utvecklingskompetensen frÄn alla analyserade kÀlltexter. En liknande process för identifiering av mönster utförs för den kontrollerade koden, som jÀmförs med referenstrÀdet för beslutsfattande. Stora avvikelser frÄn angrÀnsande grenar indikerar att det finns en anomali i det kontrollerade mönstret.

KĂ€lla: opennet.ru
