Intel publikuje ControlFlag 1.2, narzędzie do wykrywania anomalii w kodzie źródłowym

Firma Intel opublikowała wersję ControlFlag 1.2, zestawu narzędzi, który pozwala identyfikować błędy i anomalie w kodzie źródłowym za pomocą systemu uczenia maszynowego przeszkolonego na dużej ilości istniejącego kodu. W odróżnieniu od tradycyjnych analizatorów statycznych ControlFlag nie stosuje gotowych reguł, w których trudno uwzględnić wszystkie możliwe opcje, lecz opiera się na statystykach dotyczących wykorzystania różnych konstrukcji językowych w dużej liczbie istniejących projektów. Kod ControlFlag jest napisany w języku C++ i jest udostępniany na zasadach open source na licencji MIT.

Nowa wersja wyróżnia się implementacją pełnego wsparcia dla wykrywania anomalii i uczenia się w oparciu o wspólne wzorce kodu dla języka C++. W poprzednich wersjach podobna obsługa była zapewniona dla języków C i PHP. System nadaje się do identyfikowania różnego rodzaju problemów w kodzie, od identyfikowania literówek i niezgodności typów, po identyfikowanie anomalii w instrukcjach if i brakujących kontroli NULL we wskaźnikach. System jest szkolony poprzez budowanie modelu statystycznego istniejącej tablicy kodów projektów open source w C, C++ i PHP, publikowanych w GitHub i podobnych publicznych repozytoriach.

Na etapie uczenia system wyznacza typowe wzorce konstruowania struktur w kodzie i buduje drzewo składniowe powiązań pomiędzy tymi wzorcami, odzwierciedlające przebieg wykonywania kodu w programie. W rezultacie powstaje referencyjne drzewo decyzyjne, które łączy doświadczenia programistyczne wszystkich analizowanych kodów źródłowych. Przeglądany kod przechodzi podobny proces identyfikacji wzorców, które są sprawdzane w oparciu o referencyjne drzewo decyzyjne. Duże rozbieżności z sąsiednimi gałęziami wskazują na obecność anomalii w sprawdzanym wzorze.

Intel publikuje ControlFlag 1.2, narzędzie do wykrywania anomalii w kodzie źródłowym


Źródło: opennet.ru

Dodaj komentarz