Я пытаюсь найти хорошие примеры семантических утилит сравнения / слияния. Традиционная парадигма сравнения файлов исходного кода работает путем сравнения строк и символов ... но существуют ли какие-либо утилиты (для любого языка), которые действительно учитывают структуру кода при сравнении файлов?
Например, существующие программы сравнения будут сообщать «различие обнаружено в символе 2 строки 125. Файл x содержит void, а файл y содержит bool». Специализированный инструмент должен иметь возможность сообщать «Тип возвращаемого значения метода doSomething () изменен с void на bool».
Я бы сказал, что этот тип семантической информации на самом деле является тем, что пользователь ищет при сравнении кода, и должен быть целью инструментов программирования следующего поколения. Есть ли примеры этого в доступных инструментах?