The DOI matches its Crossref record.
Identifying syntactic differences between two programs
Abstract
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.
Overview
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cites
No references could be resolved yet.
Research works printed but not linked: 31
- Aho A. V., 1986, Compilers: Principles, Techniques, and Tools
- 10.1145/357114.357115 · doi:10.1145/357114.357115
- 10.1109/TSE.1983.236456 · doi:10.1109/tse.1983.236456
- Kernigham B. W., 1978, The C Programming Language
- 10.1145/77606.77609 · DOI
- Harbison S. P., 1984, C: A Reference Manual
- 10.1073/pnas.69.1.4 · DOI · Paper page
- 10.1016/0097-3165(74)90050-8 · doi:10.1016/0097-3165(74)90050-8
- 10.1145/321796.321811 · DOI · Paper page
- 10.1145/321879.321880 · DOI · Paper page
- 10.1145/322033.322044 · DOI · Paper page
- 10.1007/BF00264437 · doi:10.1007/bf00264437
- 10.1002/spe.4380151102 · DOI
- 10.1007/BF01840365 · doi:10.1007/bf01840365
- 10.1016/0304-3975(89)90101-1 · doi:10.1016/0304-3975(89)90101-1
- 10.1145/359460.359467 · DOI
- 10.1145/357401.357404 · doi:10.1145/357401.357404
- 10.1145/360825.360861 · DOI · Paper page
- 10.1002/spe.4380110702 · DOI
- 10.1002/spe.4380130206 · doi:10.1002/spe.4380130206
- 10.1002/spe.4380160702 · doi:10.1002/spe.4380160702
- T.RepsandT.Teitelbaum The synthesizer generator.Proceedings of the ACM SIGSOFT/SIG‐PLAN Software Engineering Symposium on Practical Software Development Environments Pittsburgh PA 23‐25 April 1984; · doi:10.1145/800020.808247
- 1984, ACM SIGPLAN Notices, 19, 41
- 10.1145/322290.322295 · DOI
- 10.1137/0218082 · DOI · Paper page
- 10.1145/322139.322143 · DOI · Paper page
- 10.1109/TPAMI.1979.6786615 · DOI
- 10.1016/0020-0190(77)90064-3 · DOI
- 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‐22 June 1990; · doi:10.1145/93542.93574
- 10.1145/93548.93574 · doi:10.1145/93548.93574
- 10.1147/rd.281.0074 · doi:10.1147/rd.281.0074
Cited by
Luo, L., Ming, J., Wu, D., Liu, P., & Zhu, S. (2014) · Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering · doi:10.1145/2635868.2635900 · Cited by 220
Deep learning similarities from different representations of source code
Tufano, M., Watson, C., Bavota, G., Di Penta, M., White, M., & Poshyvanyk, D. (2018) · Proceedings of the 15th International Conference on Mining Software Repositories · doi:10.1145/3196398.3196431 · Cited by 158
Luo, L., Ming, J., Wu, D., Liu, P., & Zhu, S. (2017) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2017.2655046 · Cited by 144
Value-based program characterization and its application to software plagiarism detection
Jhi, Y.-C., Wang, X., Jia, X., Zhu, S., Liu, P., & Wu, D. (2011) · Proceedings of the 33rd International Conference on Software Engineering · doi:10.1145/1985793.1985899 · Cited by 83
Program Logic Based Software Plagiarism Detection
Zhang, F., Wu, D., Liu, P., & Zhu, S. (2014) · 2014 IEEE 25th International Symposium on Software Reliability Engineering · doi:10.1109/issre.2014.18 · Cited by 57
Program Characterization Using Runtime Values and Its Application to Software Plagiarism Detection
Jhi, Y.-C., Jia, X., Wang, X., Zhu, S., Liu, P., & Wu, D. (2015) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2015.2418777 · Cited by 35
Ming, J., Zhang, F., Wu, D., Liu, P., & Zhu, S. (2016) · IEEE Transactions on Reliability · doi:10.1109/tr.2016.2570554 · Cited by 33
Metadata
- Authors
- Yang, W.
- Venue
- Software: Practice and Experience
- Publisher
- Wiley
- Published
- 1991-07
- Volume
- 21
- Issue
- 7
- Pages
- 739-755
- ISSN
- 0038-0644 (ISSN-L)
- 1097-024X
- OpenAlex
- W2049461910
- Cited by
- 346
- References
- 0
- FWCI
- 10.70
- Type
- journal article
- Language
- en
- Open access
- closed
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.