arXiv · 0803.4025
Structure and Interpretation of Computer Programs
Abstract
Call graphs depict the static, caller-callee relation between "functions" in a program. With most source/target languages supporting functions as the primitive unit of composition, call graphs naturally form the fundamental control flow representation available to understand/develop software. They are also the substrate on which various interprocedural analyses are performed and are integral part of program comprehension/testing. Given their universality and usefulness, it is imperative to ask if call graphs exhibit any intrinsic graph theoretic features -- across versions, program domains and source languages. This work is an attempt to answer these questions: we present and investigate a set of meaningful graph measures that help us understand call graphs better; we establish how these measures correlate, if any, across different languages and program domains; we also assess the overall, language independent software quality by suitably interpreting these measures.
Explore related subjects
Keep this discovery
Ganesh M. Narayan, K. Gopinath, V. Sridhar. 2008-03-27. Structure and Interpretation of Computer Programs. https://doi.org/10.1109/tase.2008.40
Cite the original work for its findings. Save a collection to share your selection of sources.