Die Mutter aller Vergleichstools ist wohl
diff aus der Unix Welt.
Es gibt 3 prinzipielle Operationen, um Datei A nach B zu überführen:
a=append
c=change
d=delete
Aus zwei Dateien entsteht dann das sogenannte "Normalformat".
Wenn ich nur die Datei A habe, dann kann ich mit Hilfe des Normalformat die Datei B rekonstruieren.
(und umgekehrt)
Hier wird das Prinzip gezeigt:
http://www.gnu.org/software/diffutil...ailed%20Normal
Viele Vergleichstools gehen so vor, dass sie
Gnu diff als Preprozessor verwenden und dessen Output visualisieren.
Für Hobbyprogrammierer ist dies das ideale Verfahren (zumindest im 1. Schritt)
Andere Tools haben sich aus dem Sourcecode Gnu diff (in dem viel Erfahrung und Mann/Frau-jahre stecken) bedient und nehmen den Vergleich selbst vor.
Der "Trick" von Gnu diff ist nun, möglichst wenige Zeilen im Normalformat zu erzeugen.