Hierarchical Program Representation for Program Element Matching

  • Fernando Berzal
  • Juan-Carlos Cubero
  • Aída Jiménez
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4881)


Many intermediate program representations are used by compilers and other software development tools. In this paper, we propose a novel representation technique that, unlike those commonly used by compilers, has been explicitly designed for facilitating program element matching, a task at the heart of many software mining problems.


Directed Acyclic Graph Basic Block Program Element Program Representation Clone Detector 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Kim, M., Notkin, D.: Program element matching for multi-version program analyses. In: MSR 2006. Proceedings of the 2006 International Workshop on Mining Software Repositories, pp. 58–64 (2006)Google Scholar
  2. 2.
    Raghavan, S., Rohana, R., Leon, D., Podgurski, A., Augustine, V.: Dex: A semantic-graph differencing tool for studying changes in large code bases. In: ICSM 2004, pp. 188–197 (2004)Google Scholar
  3. 3.
    Tonella, P.: Formal concept analysis in software engineering. In: ICSE 2004, pp. 743–744 (2004)Google Scholar
  4. 4.
    Hunt, J.W., Szymanski, T.G.: A fast algorithm for computing longest common subsequences. Communications of the ACM 20(5), 350–353 (1977)zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Tichy, W.F.: The string-to-string correction problem with block moves. ACM Trans. Comput. Syst. 2(4), 309–321 (1984)CrossRefMathSciNetGoogle Scholar
  6. 6.
    Yang, W.: Identifying syntactic differences between two programs. Software – Practice & Experience 21(7), 739–755 (1991)CrossRefGoogle Scholar
  7. 7.
    Hunt, J.J., Tichy, W.F.: Extensible language-aware merging. In: ICSM 2002, pp. 511–520 (2002)Google Scholar
  8. 8.
    Neamtiu, I., Foster, J.S., Hicks, M.: Understanding source code evolution using abstract syntax tree matching. In: MSR 2005. Proceedings of the 2005 International Workshop on Mining Software Repositories, pp. 282–290 (2005)Google Scholar
  9. 9.
    Laski, J., Szermer, W.: Identification of program modifications and its applications insoftware maintenance. In: ICSM 1992, pp. 1–5 (1992)Google Scholar
  10. 10.
    Apiwattanapong, T., Orso, A., Harrold, M.J.: A differencing algorithm for object-oriented programs. In: ASE 2004, pp. 2–13 (2004)Google Scholar
  11. 11.
    Wang, Z., Pierce, K., McFarling, S.: Bmat – a binary matching tools for stale profile propagation. Journal of Instruction-Level Parallelism 2 (2000)Google Scholar
  12. 12.
    Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9(3), 319–349 (1987)zbMATHCrossRefGoogle Scholar
  13. 13.
    Muchnick, S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (1997)Google Scholar
  14. 14.
    Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann, San Francisco (2001)Google Scholar
  15. 15.
    Horwitz, S.: Identifying the semantic and textual differences between two versions of a program. In: PLDI 1990, pp. 234–245 (1990)Google Scholar
  16. 16.
    Krinke, J.: Identifying similar code with program dependence graphs. In: WCRE 2001, pp. 301–309 (2001)Google Scholar
  17. 17.
    Jackson, D., Ladd, D.A.: Semantic diff: A tool for summarizing the effects of modifications. In: ICSM 1994, pp. 243–252 (1994)Google Scholar
  18. 18.
    Simon, H.A.: The Sciences of the Artificial, 3rd edn. The MIT Press, Cambridge (1996)Google Scholar
  19. 19.
    Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Reading (2006)Google Scholar
  20. 20.
    Harel, D.: On visual formalisms. Communications of the ACM 31(5), 514–530 (1988)CrossRefMathSciNetGoogle Scholar
  21. 21.
    Zaki, M.J.: Efficiently mining frequent embedded unordered trees. Fundamenta Informaticae 66(1-2), 33–52 (2005)zbMATHMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Fernando Berzal
    • 1
  • Juan-Carlos Cubero
    • 1
  • Aída Jiménez
    • 1
  1. 1.Dept. Computer Science and Artificial Intelligence, ETSIIT - University of Granada, 18071, GranadaSpain

Personalised recommendations