Skip to main content

Hierarchical Program Representation for Program Element Matching

  • Conference paper
Intelligent Data Engineering and Automated Learning - IDEAL 2007 (IDEAL 2007)

Part of the book series: Lecture Notes in Computer Science ((LNISA,volume 4881))

Abstract

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. 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. Tonella, P.: Formal concept analysis in software engineering. In: ICSE 2004, pp. 743–744 (2004)

    Google Scholar 

  4. Hunt, J.W., Szymanski, T.G.: A fast algorithm for computing longest common subsequences. Communications of the ACM 20(5), 350–353 (1977)

    Article  MATH  MathSciNet  Google Scholar 

  5. Tichy, W.F.: The string-to-string correction problem with block moves. ACM Trans. Comput. Syst. 2(4), 309–321 (1984)

    Article  MathSciNet  Google Scholar 

  6. Yang, W.: Identifying syntactic differences between two programs. Software – Practice & Experience 21(7), 739–755 (1991)

    Article  Google Scholar 

  7. Hunt, J.J., Tichy, W.F.: Extensible language-aware merging. In: ICSM 2002, pp. 511–520 (2002)

    Google Scholar 

  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. Laski, J., Szermer, W.: Identification of program modifications and its applications insoftware maintenance. In: ICSM 1992, pp. 1–5 (1992)

    Google Scholar 

  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. 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. 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)

    Article  MATH  Google Scholar 

  13. Muchnick, S.: Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco (1997)

    Google Scholar 

  14. Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann, San Francisco (2001)

    Google Scholar 

  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. Krinke, J.: Identifying similar code with program dependence graphs. In: WCRE 2001, pp. 301–309 (2001)

    Google Scholar 

  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. Simon, H.A.: The Sciences of the Artificial, 3rd edn. The MIT Press, Cambridge (1996)

    Google Scholar 

  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. Harel, D.: On visual formalisms. Communications of the ACM 31(5), 514–530 (1988)

    Article  MathSciNet  Google Scholar 

  21. Zaki, M.J.: Efficiently mining frequent embedded unordered trees. Fundamenta Informaticae 66(1-2), 33–52 (2005)

    MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hujun Yin Peter Tino Emilio Corchado Will Byrne Xin Yao

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berzal, F., Cubero, JC., Jiménez, A. (2007). Hierarchical Program Representation for Program Element Matching. In: Yin, H., Tino, P., Corchado, E., Byrne, W., Yao, X. (eds) Intelligent Data Engineering and Automated Learning - IDEAL 2007. IDEAL 2007. Lecture Notes in Computer Science, vol 4881. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77226-2_48

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77226-2_48

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77225-5

  • Online ISBN: 978-3-540-77226-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics