Detector de código semelhante

Eu estou procurando uma ferramenta que poderia comparar os códigos-fonte para a similaridade.

Nós temos um sistema muito trivial agora que tem uma enorme quantidade de falsos positivos e os verdadeiros positivos podem facilmente ser enterrados neles.

Minhas exigências são:

razoavelmente pequena quantidade de falsos positivosboa taxa de detecção (sim, estes estão indo um contra o outro)idealmente com uma saída mais complexa do que apenas um único valorutilizável para C (C99) e C ++ (C ++ 03 e, optimamente, C ++ 11)ainda mantidoutilizável para comparar dois arquivos de origem entre siutilizável no modo não interativo

EDITAR:

Para evitar confusão, os dois trechos de código a seguir são idênticos e devem ser detectados como tal:

for (int i = 0; i < 10; i++) { bla; }

int i; while (i < 10) { bla; i++; }

O mesmo aqui:

int x = 10; y = x + 5;

int a = 10; y = a + 5;

questionAnswers(5)

yourAnswerToTheQuestion