Chianina: An evolving graph system for flow-and context-sensitive analyses of million lines of C code

14Citations
Citations of this article
23Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Sophisticated static analysis techniques often have complicated implementations, much of which provides logic for tuning and scaling rather than basic analysis functionalities. This tight coupling of basic algorithms with special treatments for scalability makes an analysis implementation hard to (1) make correct, (2) understand/work with, and (3) reuse for other clients. This paper presents Chianina, a graph system we developed for fully context-and flow-sensitive analysis of large C programs. Chianina overcomes these challenges by allowing the developer to provide only the basic algorithm of an analysis and pushing the tuning/scaling work to the underlying system. Key to the success of Chianina is (1) an evolving graph formulation of flow sensitivity and (2) the leverage of out-of-core, disk support to deal with memory blowup resulting from context sensitivity. We implemented three context-and flow-sensitive analyses on top of Chianina and scaled them to large C programs like Linux (17M LoC) on a single commodity PC.

Cite

CITATION STYLE

APA

Zuo, Z., Zhang, Y., Pan, Q., Lu, S., Li, Y., Wang, L., … Xu, G. H. (2021). Chianina: An evolving graph system for flow-and context-sensitive analyses of million lines of C code. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (pp. 914–929). Association for Computing Machinery. https://doi.org/10.1145/3453483.3454085

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free