Back to results

University of Technology Sydney

Improving the Efficiency of Graph-Based Static Analysis

Abstract

dc:description.abstract

Generally speaking, static program analysis is to figure out whether a program can do whatever the program designers want it to do without actually executing the program. From different perspectives, static analysis studies various properties of a program, including correctness, robustness, liveness, safety, and efficiency. As contemporary programs usually tend to be large and complex, developing efficient automatic program analysis techniques while maintaining soundness and precision is desirable. Static analyses inevitably include the analysis of flows, which is usually conducted in the form of solving dynamic transitive closure on the abstract graph of programs. The inefficiency arises from not only the high complexity of transitive closure itself but also the high redundancies of the analysis techniques. This dissertation studies improving the efficiency of dynamic transitive closures on graph-based static analysis. Specifically, it focuses on improving the efficiencies of three popular static analysis frameworks: context-free language reachability, recursive state machine reachability and set constraint analysis. In this dissertation, the methodologies focus more on eliminating redundancy rather than theoretically lowering complexity. For transitive redundancy that arises from the massive re-computations and re-derivations during the analysis procedures, we design a hybrid data structure and apply it to context-free language reachability. Based on this, we propose a partially ordered algorithm, which significantly improves the scalability of context-free language reachability analysis by eliminating most re-computations and re-derivations. For trivial nodes and edges in the abstract graphs of programs, which cause extra computations in the analysis procedure, we develop a graph folding technique to remove redundant nodes and edges in the preprocessing stage and apply it to recursive state machine reachability. The graph folding technique extends the applicability of some existing techniques from particular scenarios to general analysis as long as the recursive state machine is given and is well compatible with other preprocessing techniques. For set constraint analyses where the graph contains weighted edges, we discover the derivation equivalence property and propose an approach that avoids the infinite iterations caused by weighted cycles during constraint solving. The derivation equivalence based constraint solving is highly efficient while maintaining the precision. Empirical studies on real-world clients, including value-flow analysis, alias analysis, and pointer analysis, shows that our approaches are practical and effective.

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Lei, Yuxiang

Rights

dc:rights
Statement dc:rights
  • info:eu-repo/semantics/openAccess
  • The author owns the copyright in this thesis including all reproduction and reuse rights for the work. The work may not be altered without the permission of the copyright owner. Attribution is essential when quoting or paraphrasing from this thesis.
  • © 2022 Yuxiang Lei
  • au.edu.uts.lib/cph
Language dc:language.iso
en_US

Identifiers

dc:identifier.*
Handle dc:identifier.uri
http://hdl.handle.net/10453/172174
OAI identifier oai:identifier
oai:opus.lib.uts.edu.au:10453/172174

Chain of custody

source
Harvested from
University of Technology Sydney
Base URL
opus.lib.uts.edu.au/oai/request
Last updated
2026-07-24
Source record
OAI-PMH GetRecord
related terms
citation

Lei, Yuxiang. Improving the Efficiency of Graph-Based Static Analysis. 2022. http://hdl.handle.net/10453/172174