Estou parecendo louco por uma explicação de um algoritmo diff que funciona e é eficiente.
O mais próximo que cheguei foi desse link para o RFC 3284 (de várias postagens no blog Eric Sink), que descreve em termos perfeitamente compreensíveis o formato de dados no qual os resultados do diff são armazenados. No entanto, não há menção alguma sobre como um programa alcançaria esses resultados ao fazer uma comparação.
Estou tentando pesquisar isso por curiosidade pessoal, porque tenho certeza de que deve haver vantagens e desvantagens ao implementar um algoritmo diff, que às vezes é bastante claro quando você olha para diffs e se pergunta "por que o programa diff escolheu isso como uma alteração ao invés disso?"...
Onde posso encontrar uma descrição de um algoritmo eficiente que acabaria gerando VCDIFF?
A propósito, se você encontrar uma descrição do algoritmo real usado pelo DiffMerge da SourceGear, isso seria ainda melhor.
NOTA: a subsequência comum mais longa não parece ser o algoritmo usado pelo VCDIFF, parece que eles estão fazendo algo mais inteligente, considerando o formato de dados que usam.