В зависимости от того, сколько усилий было приложено к намерению скрыть перенос, его может быть очень просто или невозможно обнаружить.
Я бы использовал распознавание образов для этой задачи. Подумайте о «функциях», которые указывают на сходство кода. Извлеките эти функции из каждого кода и сравните их.
например:
Одной особенностью могут быть похожие имена символов. Извлеките все символы, используя ctags или регулярные выражения, сделайте все строчными, сделайте uniq-сортировку обоих списков и сравните их.
Еще одна возможная особенность:
Список класса + количество участников, например:
MyClass1 10
...
Список методов + последовательность блоков управления. например:
doSth() if, while, if, ix, case
...
Другой простой способ - представить код в виде картинки - например, загрузите код как текст в Word и установите размер шрифта 1. Люди очень хорошо умеют сравнивать картинки. Для других идей визуализации кода вы можете проверить http://www.se -radio.net / 2009/03 / episode-130-code-visualization-michele-lanza /