TY - JOUR
T1 - Identifying syntactic differences between two programs
AU - Yang, Wuu
PY - 1991/1/1
Y1 - 1991/1/1
N2 - Programmers frequently face the need to identify the differences between two programs, usually two different versions of a program. Text‐based tools such as the UNIXr̀ utility diff often produce unsatisfactory comparisons because they cannot accurately pinpoint the differences and because they sometimes produce irrelevant differences. Since programs have a rigid syntactic structure as described by the grammar of the programming language in which they are written, we develop a comparison algorithm that exploits knowledge of the grammar. The algorithm, which is based on a dynamic programming scheme, can point out the differences between two programs more accurately than previous text comparison tools. Finally, the two programs are pretty‐printed ‘synchronously’ with the differences highlighted so that the differences are easily identified.
AB - Programmers frequently face the need to identify the differences between two programs, usually two different versions of a program. Text‐based tools such as the UNIXr̀ utility diff often produce unsatisfactory comparisons because they cannot accurately pinpoint the differences and because they sometimes produce irrelevant differences. Since programs have a rigid syntactic structure as described by the grammar of the programming language in which they are written, we develop a comparison algorithm that exploits knowledge of the grammar. The algorithm, which is based on a dynamic programming scheme, can point out the differences between two programs more accurately than previous text comparison tools. Finally, the two programs are pretty‐printed ‘synchronously’ with the differences highlighted so that the differences are easily identified.
KW - cdiff
KW - Synchronous pretty‐printing
KW - Syntax‐directed comparator
UR - http://www.scopus.com/inward/record.url?scp=0026185673&partnerID=8YFLogxK
U2 - 10.1002/spe.4380210706
DO - 10.1002/spe.4380210706
M3 - Article
AN - SCOPUS:0026185673
SN - 0038-0644
VL - 21
SP - 739
EP - 755
JO - Software: Practice and Experience
JF - Software: Practice and Experience
IS - 7
ER -