Intel publica ControlFlag 1.2, uma ferramenta para detectar anomalias no código-fonte

A Intel publicou o lançamento do ControlFlag 1.2, um kit de ferramentas que permite identificar erros e anomalias no código-fonte usando um sistema de aprendizado de máquina treinado em uma grande quantidade de código existente. Ao contrário dos analisadores estáticos tradicionais, o ControlFlag não aplica regras prontas, nas quais é difícil fornecer todas as opções possíveis, mas é baseado em estatísticas sobre o uso de diversas construções de linguagem em um grande número de projetos existentes. O código ControlFlag é escrito em C++ e é de código aberto sob a licença MIT.

A nova versão se destaca pela implementação de suporte completo para detecção de anomalias e aprendizado baseado em padrões de código comuns para a linguagem C++. Nas versões anteriores, suporte semelhante era fornecido para as linguagens C e PHP. O sistema é adequado para identificar vários tipos de problemas no código, desde a identificação de erros de digitação e incompatibilidades de tipos, até a identificação de anomalias em instruções if e verificações NULL ausentes em ponteiros. O sistema é treinado através da construção de um modelo estatístico da matriz de código existente de projetos de código aberto em C, C++ e PHP, publicado no GitHub e repositórios públicos semelhantes.

Na fase de treinamento, o sistema determina padrões típicos de construção de estruturas no código e constrói uma árvore sintática de conexões entre esses padrões, refletindo o fluxo de execução do código no programa. Como resultado, é formada uma árvore de tomada de decisão de referência que combina a experiência de desenvolvimento de todos os códigos-fonte analisados. O código em revisão passa por um processo semelhante de identificação de padrões que são verificados em uma árvore de decisão de referência. Grandes discrepâncias com ramos vizinhos indicam a presença de uma anomalia no padrão verificado.

Intel publica ControlFlag 1.2, uma ferramenta para detectar anomalias no código-fonte


Fonte: opennet.ru

Adicionar um comentário