Imprimir
Seu estilo de programar é quase tão único quanto uma impressão digital

 

Com tempo e prática, programadores tendem a desenvolver suas próprias manias e particularidades. Mas o jeito como eles programam é ainda mais único do que pode parecer. Segundo uma pesquisa elaborada por especialistas das Universidades Drexel, de Maryland, de Goettingen e Princeton, a forma com que códigos são escritos é praticamente uma “impressão digital” – que pode inclusive ser usada para identificar quem é o responsável pelo arquivo.

Os pesquisadores por trás do estudo conseguiram criar uma espécie de “estilômetro” de programação, nas palavras do site IT World. Em testes, o sistema foi capaz de determinar, com grau de precisão de 95%, os autores de diferentes códigos-fonte, aprendendo com base nos padrões usados por programadores e apelando até para processamento de linguagem natural.

A avaliação foi feita com base em dados públicos das edições de 2008 a 2014 do Code Jam, uma competição de programação organizada anualmente pelo Google. Foram analisados arquivos de código em C++ produzidos por mais de 100 mil participantes, que precisaram desenvolver soluções para diferentes problemas apresentados durante os eventos.

Os especialistas primeiro estudaram amostras referentes a um problema. Então, com base no que aprenderam nessa “análise de big data”, partiram para identificar partes de código relacionadas a outras soluções. O sistema obteve a impressionante taxa de sucesso de 92% quando precisou classificar “mais de 170 autores mesmo com apenas cinco arquivos por pessoa”, de acordo com o estudo – e foi ainda melhor, batendo os 95%, quando mais documentos do tipo (oito), referentes a mais autores (250), foram analisados.

Para chegar a esse grau de exatidão, o “estilômetro” analisa pontos óbvios, como o formato do código e os elementos preferidos pelos programadores. Mas não só eles. Os pesquisadores também apelam para um conceito novo que desenvolveram: as “árvores abstratas de sintaxe”, ou “abstract syntax trees” no termo original. Elas identificam as construções de linguagem mais usadas por diferentes autores, como o costume de usar “funções incomumente longas ou sequências compridas de atribuições”, entre outras particularidades.

A metodologia, no entanto, não é perfeita, e não só pelos 5% faltantes na taxa de sucesso. Segundo a pesquisa, o sistema ainda se confunde com linhas extras adicionadas a um código-fonte – o que até pode ser considerado trivial, visto que não é difícil detectá-las manualmente. Mas, além disso, o método também não é capaz de identificar farsas como um caso em que o arquivo foi escrito por um autor diferente do informado.

Fonte aqui

  voltar