Saya mencoba menemukan beberapa contoh bagus dari utilitas diff / merge semantik. Paradigma tradisional dari membandingkan file kode sumber bekerja dengan membandingkan baris dan karakter .. tetapi apakah ada utilitas di luar sana (untuk bahasa apa pun) yang benar-benar mempertimbangkan struktur kode saat membandingkan file?
Misalnya, program diff yang ada akan melaporkan "perbedaan ditemukan pada karakter 2 baris 125. File x berisi void, di mana file y berisi bool". Alat khusus harus dapat melaporkan "Jenis pengembalian metode doSomething () diubah dari void ke bool".
Saya berpendapat bahwa jenis informasi semantik ini sebenarnya adalah apa yang dicari pengguna saat membandingkan kode, dan harus menjadi tujuan alat pemrograman generasi berikutnya. Apakah ada contohnya di alat yang tersedia?