{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,28]],"date-time":"2026-06-28T04:58:52Z","timestamp":1782622732161,"version":"3.54.5"},"reference-count":31,"publisher":"Wiley","issue":"7","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":5600,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1991,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Programmers frequently face the need to identify the differences between two programs, usually two different versions of a program. Text\u2010based tools such as the UNIXr\u0300 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\u2010printed \u2018synchronously\u2019 with the differences highlighted so that the differences are easily identified.<\/jats:p>","DOI":"10.1002\/spe.4380210706","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T18:39:28Z","timestamp":1163788768000},"page":"739-755","source":"Crossref","is-referenced-by-count":228,"title":["Identifying syntactic differences between two programs"],"prefix":"10.1002","volume":"21","author":[{"given":"Wuu","family":"Yang","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","volume-title":"Compilers: Principles, Techniques, and Tools","author":"Aho A. V.","year":"1986"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/357114.357115"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1983.236456"},{"key":"e_1_2_1_5_2","volume-title":"The C Programming Language","author":"Kernigham B. W.","year":"1978"},{"key":"e_1_2_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/77606.77609"},{"key":"e_1_2_1_7_2","volume-title":"C: A Reference Manual","author":"Harbison S. P.","year":"1984"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1073\/pnas.69.1.4"},{"key":"e_1_2_1_9_2","doi-asserted-by":"publisher","DOI":"10.1016\/0097-3165(74)90050-8"},{"key":"e_1_2_1_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/321796.321811"},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/321879.321880"},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/322033.322044"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF00264437"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380151102"},{"key":"e_1_2_1_15_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF01840365"},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(89)90101-1"},{"key":"e_1_2_1_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/359460.359467"},{"key":"e_1_2_1_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/357401.357404"},{"key":"e_1_2_1_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/360825.360861"},{"key":"e_1_2_1_20_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380110702"},{"key":"e_1_2_1_21_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380130206"},{"key":"e_1_2_1_22_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380160702"},{"key":"e_1_2_1_23_2","doi-asserted-by":"crossref","unstructured":"T.RepsandT.Teitelbaum The synthesizer generator.Proceedings of the ACM SIGSOFT\/SIG\u2010PLAN Software Engineering Symposium on Practical Software Development Environments Pittsburgh PA 23\u201025 April 1984;","DOI":"10.1145\/800020.808247"},{"issue":"5","key":"e_1_2_1_23_3","first-page":"41","volume":"19","year":"1984","journal-title":"ACM SIGPLAN Notices"},{"key":"e_1_2_1_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/322290.322295"},{"key":"e_1_2_1_25_2","doi-asserted-by":"publisher","DOI":"10.1137\/0218082"},{"key":"e_1_2_1_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/322139.322143"},{"key":"e_1_2_1_27_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPAMI.1979.6786615"},{"key":"e_1_2_1_28_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(77)90064-3"},{"key":"e_1_2_1_29_2","doi-asserted-by":"crossref","unstructured":"S.Horwitz Identifying the semantic and textual differences between two versions of a program Proceedings of the SIGPLAN 90 Conference on Programming Language Design and Implementation White Plain New York 20\u201022 June 1990;","DOI":"10.1145\/93542.93574"},{"key":"e_1_2_1_29_3","doi-asserted-by":"publisher","DOI":"10.1145\/93548.93574"},{"key":"e_1_2_1_30_2","doi-asserted-by":"publisher","DOI":"10.1147\/rd.281.0074"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380210706","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380210706","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T06:36:57Z","timestamp":1698043017000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380210706"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1991,7]]},"references-count":31,"journal-issue":{"issue":"7","published-print":{"date-parts":[[1991,7]]}},"alternative-id":["10.1002\/spe.4380210706"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380210706","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1991,7]]}}}