• DocumentCode
    3408548
  • Title

    An empirical study of static call graph extractors

  • Author

    Murphy, Gail C. ; Notkin, David ; Lan, Erica S C

  • Author_Institution
    Dept. of Comput. Sci. & Eng., Washington Univ., Seattle, WA, USA
  • fYear
    1996
  • fDate
    25-29 Mar 1996
  • Firstpage
    90
  • Lastpage
    99
  • Abstract
    Informally, a call graph represents calls between entities in a given program. The call graphs that compilers compute to determine the applicability of an optimization must typically be conservative: a call may be omitted only if it can never occur an any execution of the program. Numerous software engineering tools also extract call graphs, with the expectation that they will help software engineers increase their understanding of a program. The requirements placed on software engineering tools when computing call graphs are typically more related than for compilers. For example, some false negatives-calls that can in fact take place in some execution of the program, but which are omitted from the call graph-may be acceptable, depending on the understanding task at hand. In this paper we empirically show a consequence of this spectrum of requirements by comparing the C call graphs extracted from three software systems (mapmaker, mosaic, and gee) by five extraction tools (cflow, CIA, Field, mk-functmap, and rigiparse). A quantitative analysis of the call graphs extracted for each system shows considerable variation, a result that is counterintuitive to many experienced software engineers. A qualitative analysis of these results reveals a number of reasons for this variation: differing treatments of macros, function pointers, input formats, etc. We describe and discuss the study, sketch the design space, and discuss the impact of our study on practitioners, tool developers, and researchers
  • Keywords
    graph theory; program compilers; program diagnostics; software tools; C call graphs; CIA; Field; cflow; compilers; extraction tools; false negatives; gee; mapmaker; mk-functmap; mosaic; optimization; program understanding; qualitative analysis; quantitative analysis; rigiparse; software engineering tools; software engineers; software systems; static call graph extractors; understanding task; Computer science; Design engineering; Humans; Optimizing compilers; Program processors; Scholarships; Software engineering; Software systems; Software tools;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 1996., Proceedings of the 18th International Conference on
  • Conference_Location
    Berlin
  • ISSN
    0270-5257
  • Print_ISBN
    0-8186-7247-1
  • Type

    conf

  • DOI
    10.1109/ICSE.1996.493405
  • Filename
    493405