Az Intel közzétette a ControlFlag 1.2-es eszközkészletet, amely lehetővé teszi a hibák és anomáliák azonosítását a forráskódokban, egy nagy mennyiségű meglévő kód alapján betanított gépi tanulási rendszer segítségével. A hagyományos statikus elemzőkkel ellentétben a ControlFlag nem alkalmaz kész szabályokat, amelyekben nehéz előre látni az összes lehetséges változatot, hanem a különböző nyelvi konstrukciók statisztikai használatára támaszkodik számos meglévő projektben. A ControlFlag kódja C++ nyelven íródott, és MIT licenc alatt elérhető.
Az új kiadás a C++ nyelvben történő anomáliák azonosításának és a kódminták alapján történő tanulás teljes támogatásával tűnik ki. A korábbi verziókban hasonló támogatás volt biztosítva a C és PHP nyelvek számára. A rendszer különböző típusú problémák azonosítására alkalmas a kódban, a gépelési hibák és a típusok helytelen kombinációinak azonosításától kezdve a "if" feltételes kifejezések anomáliáinak és a NULL értékű mutatók ellenőrzéseinek elmulasztásáig. A rendszer statisztikai modellek építésével tanul az olyan nyílt projektek meglévő kódjának mintáiból, mint a C, C++ és PHP, amelyeket a GitHub és hasonló nyilvános tárolók publikálnak.
A tanulási fázisban a rendszer azonosítja a kódban használt konstrukciók tipikus mintáit és egy szintaktikai kapcsolatfát épít fel ezen minták között, amely a kód végrehajtási folyamatát tükrözi a programban. Ennek eredményeként egy referencia döntési fa jön létre, amely egyesíti az összes elemzett forrásszöveg fejlesztési tapasztalatait. A vizsgált kód esetén hasonló mintázatmeghatározási folyamat zajlik, amely összeveti az referencia döntési fával. A szomszédos ágakkal való nagy eltérések anomáliát jeleznek a vizsgált mintában.

Forrás: opennet.ru
