Structure and Interpretation of Computer Programs
Ganesh M. Narayan, K. Gopinath, V. Sridhar

TL;DR
This paper investigates the intrinsic graph-theoretic properties of call graphs across various programming languages and domains to understand their role in software quality and program comprehension.
Contribution
It introduces and analyzes meaningful graph measures for call graphs, exploring their correlations and implications for language-independent software quality assessment.
Findings
Call graphs exhibit certain universal graph features.
Graph measures correlate across languages and domains.
These measures can indicate overall software quality.
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
