Não há tal coisa como um programador anônimo: seu estilo de codificação pode desmascarar você, de acordo com pesquisa liderada por Drexel University Comp. Sci. Doutorando Aylin Caliskan-Islam.
Em um trabalho que tem sérias implicações para qualquer um acreditar suas contribuições projeto de código aberto são anônimas, os pesquisadores acham que como muitos como 95 por cento dos contribuintes para uma base de código de tamanho decente pode ser identificado.
Isso não é uma questão trivial, uma vez que os pesquisadores citam o caso de codificador iraniano Saeed Malekpour, condenado à morte para o desenvolvimento de uma ferramenta de upload de fotos (a pena foi depois comutada para prisão perpétua).
Em seu papel (com co-autores do Laboratório de Pesquisa do Exército dos EUA, da Universidade de Maryland, Princeton e Universidade alemã de Goettingen), Caliskan-Islam aplicado aprendizado de máquina para identificar 250 C ++ autores usando seu estilo de codificação em projetos Google Code Jam.
A partir do papel: "Talvez um programador tem uma preferência por espaços sobre as abas, ou enquanto laços mais para loops, ou, mais sutilmente, modular em vez de código monolítico. Pode elementos de estilo de codificação ser extraídos computacionalmente, e em caso afirmativo, quais recursos são mais informativo? "
Raspando o trabalho dos contribuinte de sucesso para a competição Google Code Jam, os pesquisadores descobriram que apenas oito arquivos de treinamento com 70 linhas de código cada foram suficientes para identificar os autores com base em seus hábitos, lexical, sintática e layout.
Além disso, ofuscação de código não ajudar a esconder-lhe: "o nosso conjunto de recursos sintática é impermeável à obfuscators código off-the-shelf, que só mudar a disposição e alguns recursos lexicais".
A habilidade do programador indivíduo também é importante para a análise:
"Os programadores que estão mais avançados e são capazes de resolver tarefas fi cult mais dif têm estilos de codificação mais distinta do que programadores que não são tão avançada. Os programadores com um conjunto de habilidades maior pode ser identificadas mais facilmente e com maior con fi ança. Programadores revelam estilo de codificação mais individual em tarefas de programação mais difíceis. "
Assim como forense de software (incluindo registar os autores de software malicioso), o estudo observa que as suas técnicas podem ser usadas para identificar plágio entre estudantes de ciência da computação.
Curiosamente, a pesquisa também revela que a sabedoria convencional - que o código conciso é bom código - pode não ser verdadeiras. Descobriu-se que os concorrentes Google Code Jam, que concluiu com êxito a maioria das tarefas na competição escreveu mais código do que aqueles que terminam menos tarefas.
O estudo diz: "Os programadores com melhores habilidades tendem a escrever código mais tempo para resolver problemas Google Code Jam. A idéia dominante é que os melhores programadores escrever código mais curto e mais limpo que contradiz com a linha de estatísticas de código ". ®
Nenhum comentário:
Postar um comentário