Estoy tratando de encontrar algunos buenos ejemplos de utilidades semánticas de diferenciación / fusión. El paradigma tradicional de comparar archivos de código fuente funciona comparando líneas y caracteres ... pero ¿hay alguna utilidad (para cualquier idioma) que realmente considere la estructura del código al comparar archivos?
Por ejemplo, los programas diff existentes informarán "diferencia encontrada en el carácter 2 de la línea 125. El archivo x contiene vacío, donde el archivo y contiene bool". Una herramienta especializada debería poder informar "Tipo de retorno del método doSomething () cambiado de void a bool".
Yo diría que este tipo de información semántica es en realidad lo que el usuario busca al comparar código, y debería ser el objetivo de las herramientas de programación de próxima generación. ¿Hay ejemplos de esto en las herramientas disponibles?