ControlFlag: uma ferramenta de depuração de código

Intel lançou liberando a versão significativa de ControlFlag 1.0, que é um sistema de controle de software permitindo detectar erros e anomalias em seu 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, ControlFlag não aplica regras predefinidas, em que é difícil prever todas as opções possíveis, mas sim parte das estatísticas de uso de todos os tipos de construções idioma em um grande número de projetos existentes.

De acordo com pesquisas, encontrar e remover bugs no código geralmente é feito manualmente e leva mais de 50% do tempo de trabalho dos desenvolvedores. 

A ferramenta aprende como identificar e rotular essas opções estilísticas e você pode personalizar a identificação de bugs e recomendações de correção com base em seu conhecimento, minimizando as caracterizações de código incorreto do ControlFlag que podem ser simplesmente um desvio estilístico entre duas equipes de desenvolvedores.

Sobre o ControlFlag

O sistema é treinado pela construção de um modelo estatístico a partir da matriz de código-fonte existente aberto publicado no GitHub e repositórios públicos semelhantes. No estágio de treinamento, o sistema determina modelos típicos para construir estruturas no código e constrói uma árvore sintática de conexões entre esses modelos, refletindo o fluxo de execução do código no programa.

Como resultado, uma árvore de decisão de referência é formada, combinando a experiência de desenvolvimento de todos os textos fonte analisados. Um processo de definição de padrão semelhante é executado para o código em teste, que é comparado a uma árvore de decisão de referência. Grandes discrepâncias com ramos adjacentes indicam uma anomalia no padrão que está sendo verificado.

Das características Da versão ControlFlag 1.0, suporte total para modelos C é destacado e a capacidade de detectar anomalias em declarações condicionais "if".

Por exemplo, ao analisar o fragmento de código "if (x = 7) y = x;" o sistema detectará que a construção "variável == número" é geralmente usada na instrução "if" para comparar valores numéricos, portanto, a indicação "variável = número" na instrução "if" é provavelmente causada por um erro tipográfico.

El kit fornece um script que permite baixar os repositórios C disponíveis no GitHub e usá-los para construir um modelo. Modelos prontos para uso também estão disponíveis, permitindo que você comece a verificar o código imediatamente

O sistema faz parte do projeto de Pesquisa em Programação de Máquina (MPR) da Intel, cujo objetivo principal é reduzir em 1000 vezes o tempo necessário para o desenvolvimento de software devido à automação.

Em particular, a Intel está atualmente trabalhando para treinar o Controlflag para corrigir automaticamente os erros detectados. Também em 2020, a empresa lançou a ferramenta MISIM, desenvolvida em conjunto com os laboratórios do MIT, que pode estudar trechos de código para entender o que um trecho de código está tentando fazer. O sistema deve ser usado para fornecer aos desenvolvedores maneiras de melhorar a eficiência do código.

"A depuração deve causar ainda mais danos aos desenvolvedores e à indústria como um todo", disse a Intel. Anúncio… "Quando totalmente implementado, o ControlFlag pode ajudar a mitigar esse desafio, automatizando o trabalho de desenvolvimento de software, como teste, monitoramento e depuração."

“A principal vantagem da abordagem não supervisionada do ControlFlag para reconhecimento de padrões é que você pode essencialmente aprender a se adaptar ao estilo do desenvolvedor. Porque o programa tem entrada limitada para as ferramentas de controle que você precisa avaliar. O ControlFlag pode identificar variações tipográficas em linguagens de programação da mesma forma que os leitores podem reconhecer diferenças completas entre palavras e usar abreviações em inglês ”, escreve Intel.

Finalmente se você estiver interessado em saber mais sobre isso Sobre o ControlFlag, você deve saber que ele é escrito em C ++ e é um código-fonte aberto sob a licença do MIT e seu código está hospedado no GitHub.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.