Имеются исходные тексты двух программ: оригинал и его модификация.
Модифицированная программа получена в 2 этапа: возможное переименование идентификаторов (имен функций и переменных) плюс возможное перемещение текста. Эти изменения инвариантны относительно функциональности программы. Второй этап: это когда действительно вносятся изменения, изменяющие функционирование программы.
Вот эти изменения и нужно отловить.
Обычный diff в это случае бесполезен, т.к. выдает очень много мусора и реальные изменения очень трудно отловить.
Ищутся инструменты, которые могли бы сравнивать программы «структурно», а не просто по тексту.
Код на Си (именно на нем мне нужно анализировать) или Си-подобный (если другого нет).
Нагуглил ydiff, но непонятно насколько оно хорошо работает на Си-коде.
Да еще к тому же оно на Лиспе. Если что нибудь «попроще»?