Kompania Intel publikoi lëshimin e mjeteve ControlFlag 1.2, i cili lejon identifikimin e gabimeve dhe anomali në tekstet burimore, duke përdorur një sistem të mësimit të makinerive, i trajnuar në një sasi të madhe kodit ekzistues. Ndryshe nga analizatorët tradicionalë statikë, ControlFlag nuk përdor rregulla të gatshme, ku është e vështirë të parashikohet çdo rast, por mbështetet në statistikën e përdorimit të të gjitha konstruksioneve gjuhësore në një numër të madh projektesh ekzistuese. Kodi i ControlFlag është shkruar në C++ dhe është i hapur nën licencën MIT.
Lëshimi i ri ka si veçori zbatimin e mbështetje të plotë për identifikimin e anomali dhe mësimin bazuar në shabllonët tipikë të kodit për gjuhën C++. Në versionet e kaluara, një mbështetje e tillë ishte siguruar për gjuhët C dhe PHP. Sistemi është i përshtatshëm për identifikimin në kod të llojeve të ndryshme të problemeve, nga identifikimi i gabimeve shtypi dhe kombinimeve të pasaktë të tipave, deri te identifikimi i anomali në shprehjet kushtore "if" dhe kontrollet e mungesës së vlerës NULL në treguesit. Sistemi mëson nëpërmjet ndërtimit të një modeli statistik të grumbullit të kodit të projekteve të hapura në gjuhët C, C++ dhe PHP, të publikuara në GitHub dhe të ngjashme me depot publike.
Në fazën e mësimit, sistemi identifikon shabllonet tipike të ndërtimit të konstruksioneve në kod dhe ndërtin një pemë sintaksore të lidhjeve midis këtyre shablloneve, që reflekton rrjedhën e ekzekutimit të kodit në program. Në fund formohet një pemë referuese vendimmarrjeje, që bashkon përvojën e zhvillimit të të gjitha teksteve burimore të analizuara. Për kodin e kontrolluar, kryhet një proces i ngjashëm për identifikimin e shablloneve, që krahasohen me pemën referuese të vendimmarrjes. Shkëputjet e mëdha nga degët fqinje tregojnë për praninë e një anomalie në shabllonin e kontrolluar.

Burimi: opennet.ru
