Skip to main content
Log in

Renaming Detection

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Finding changed identifiers is important for understanding the difference between two versions of a program and for detecting and resolving conflicts while merging variants of a program together. Standard practice for differencing and merging relies on line based techniques that do not recognize renamed identifiers. The design and implementation of a tool to automatically detect renamed identifiers between two versions of a program is presented. The system uses an abstract representation of language constructs to enable language awareness without introducing language dependence. Modules for Java and Scheme have been written. The detector works with multiple file pairs, taking into account renamings that span several files. A case study is presented that demonstrates proof of concept. The detector is part of a suite of intelligent differencing and merging programs that exploit the static semantics of programming languages.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Binkley, D., Horwitz, S., and Reps, T. 1995. Program integration for languages with procedure calls. ACM Transactions on Software Engineering and Methology, 4(1):3–35.

    Google Scholar 

  • Friedman-Hill, E.J. 1999. Jess, The Java Expert System Shell.

  • Gusfield, D. 1997. Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology. Cambridge University Press.

  • Horwitz, S., Prins, J., and Reps, T. 1989. Integrating noninterfering versions of programs. ACM Transactions on Programming Languages and Systems, 11(3):345–387.

    Google Scholar 

  • Horwitz, S., Reps, T., and Yang, W. 1992. A program integration algorithm that accomodates semantics-preserving transformations. ACM Transactions on Software Engineering and Methology, 1(3):310–354.

    Google Scholar 

  • Hunt, J.J. 2000. An Adaptive Heuristic for Tree Comparision. Technical Report 2000–9, Fakult ät für Informatik, Universität Karlsruhe.

  • Hunt, J.W. and McIllroy, M.D. 1976. An algorith for differential file comparison. Computer Science Technical Report 41, Bell Laboratories.

  • Joseph, D., Meidanis, J., and Tiwari, P. 1992. Determining DNA sequences similarity using maximum independant set algorithms for interval graphs. In O. Nurmi and E. Ukkonen, editors, Proceedings of the 3rd Scandinavian Workshop on Algorithm Theory. Helsinki, Finland, pp. 326–337.

  • Lippe, E. and van Oosterom, N. 1992. Operation-based Merging. In H. Weber, editor, Proceedings 5th ACM SIGSOFT Symposium on Software Development Environments, pp. 78–87.

  • McCreight, E.M. 1976. A space economical suffix tree construction algorithm. Journal of the ACM, 32:262–272.

    Google Scholar 

  • Ousterhout, J.K. 1983. Corner Stitching: A Data Structuring Technique for VLSI Layout Tools. Technical Report CSD–83–114, University of California, Berkeley.

    Google Scholar 

  • Ousterhout, J.K., Hamachi, G.T., Mayo, R.N., Scott, W.S., and Taylor, G.S. 1984. Magic: A VLSI layout system. In Proc. of the 21th Design Automation Conf., pp. 152–159.

  • Parr, T. 1999. ANTLR Reference Manual, http://www.ANTLR.org/doc/index.html.

  • Parr, T. and Quong, R. 1995. A predicated-LL(k) parser generator. Software Practice and Experience, 25(7):789–810.

    Google Scholar 

  • Perry, D.E., Siy, H.P., and Votta, L.G. 2001. Parallel changes in large-scale software development. An Observational Case Study, 10(3):308–337.

    Google Scholar 

  • Tichy, W.F. 1984. The string-to-string correction problem with block moves. 2(4):309–321.

    Google Scholar 

  • Tichy, W.F. 1985. RCS-a system for version control. Software-Practice and Experience, 15(7):637–654.

    Google Scholar 

  • Westfechtel, B. 1991. Structure-oriented merging of revisions of software documents. In S. Feiler, editor, Proceedings 3rd International Workshop on Software configuration Management, New York, pp. 68–80.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Malpohl, G., Hunt, J.J. & Tichy, W.F. Renaming Detection. Automated Software Engineering 10, 183–202 (2003). https://doi.org/10.1023/A:1022968013020

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1022968013020

Navigation