• DocumentCode
    2695457
  • Title

    Impact of function pointers on the call graph

  • Author

    Antoniol, G. ; Calzolari, F. ; Tonella, P.

  • Author_Institution
    Ist. per la Ricerca Sci. e Tecnologica, Trento, Italy
  • fYear
    1999
  • fDate
    1999
  • Firstpage
    51
  • Lastpage
    59
  • Abstract
    Maintenance activities are made more difficult when pointers are heavily used in source code: the programmer needs to build a mental model of memory locations and of the way they are accessed by means of pointers, in order to comprehend the functionalities of the system. Although several points-to analysis algorithms have been proposed in literature to provide information about memory locations referenced by pointers, there are no quantitative evaluations of the impact of pointers on the overall program understanding activities. Program comprehension activities are usually supported by tools, providing suitable views of the source program. One of the most widely used code views is the call graph, a graph representing calls between functions in the given program. Unfortunately, when pointers, and especially function pointers, are heavily used in the code, the extracted call graph is highly inaccurate and thus of little usage, if a points-to analysis is not preliminarly performed. We address the problem of evaluating the impact of pointer analysis on the call graph. The results, obtained on a set of real world programs, provide a quantitative evaluation and show the key role of pointer analysis in call graph construction
  • Keywords
    data structures; graphs; program control structures; reverse engineering; software maintenance; call graph construction; code views; extracted call graph; function pointers; maintenance activities; memory locations; mental model; pointer analysis; points-to analysis; points-to analysis algorithms; program comprehension activities; program understanding activities; quantitative evaluation; real world programs; software maintenance; source code; Character generation; Computer languages; Cost accounting; Electronic switching systems; Information analysis; Joining processes; Optimizing compilers; Performance analysis; Programming profession; Software engineering;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance and Reengineering, 1999. Proceedings of the Third European Conference on
  • Conference_Location
    Amsterdam
  • Print_ISBN
    0-7695-0090-0
  • Type

    conf

  • DOI
    10.1109/CSMR.1999.756682
  • Filename
    756682