Publication Date
8-2024
Date of Final Oral Examination (Defense)
6-13-2024
Type of Culminating Activity
Dissertation
Degree Title
Doctor of Philosophy in Computing
Department Filter
Computer Science
Department
Computer Science
Supervisory Committee Chair
Elena Sherman, Ph.D.
Supervisory Committee Member
Jim Buffenbarger, Ph.D.
Supervisory Committee Member
Marion Scheepers, Ph.D.
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-Share Alike 4.0 International License.
Abstract
Developing correct, defect-free software is a fundamental goal of software engineering. To achieve this objective, software engineers utilize many quality assurance techniques, including static program analysis. Numerical static program analysis is a powerful technique that proves the absence of defects. This approach combines data-flow analysis (DFA) with abstract interpretation (AbsI). DFA propagates information, and AbsI defines the type of information and its operations through abstract domains. Given the over-approximating nature of program analysis, however, analyzers may discover defects in infeasible program behavior, i.e., may produce false positives. To reduce false positives, numerical static analyzers use more precise relational abstract domains, such as Zones or Octagons, instead of less precise non-relational domains like Intervals.
However, running a static analyzer over relational numerical domains can be cost- prohibitive, particularly for large programs. These programs tend to have many variables and many relations between variables, which can decrease the efficiency of numerical static analyzers. Thus, to address this scalability issue, researchers focus on improving efficiency of abstract domain operations and justifying selection of more efficient, but less precise, abstract domains. This dissertation investigates these two aspects within the incremental context of DFA. Specifically, in two distinct lines of research, we devise (1) efficient domain operations and (2) precise abstract state comparisons as incremental problems within the framework of DFA.
The first part develops incremental algorithms for the closure computations for Zones and Octagons, two popular weakly-relational numerical abstract domains. This closure operation is critical for DFA’s fixed-point algorithm performance. We develop two novel incremental closure algorithms that improve analysis efficiency compared to existing closure computations. The key observation is that the closure operation can be applied to a small portion of the updated abstract state. We introduce an incremental closure algorithm for Zones and deferred incremental closure for Octagons. We theoretically and experimentally demonstrate significant runtime improvements over existing incremental closure algorithms.
The second part leverages DFA’s incremental updates to abstract states to identify a minimal number of affected variable relations. Often, researchers need to compare abstract states from different analysis runs to justify domain choices. Existing methods coarsely compare abstract states, which leads to overstating precision benefits of more expressive domains. We develop several algorithms for identifying minimal changes in weakly-relational numerical abstract states. These techniques, when applied to the problem of domain selection, improve the granularity of comparison between abstract states. Through extensive empirical evaluations, our techniques significantly reclassify invariants within their precision relations.
DOI
https://doi.org/10.18122/td.2260.boisestate
Recommended Citation
Ballou, Kenny, "Leveraging Incrementality of Data-Flow Program Analysis to Improve Analysis Over Weakly-Relational Abstract Domains" (2024). Boise State University Theses and Dissertations. 2260.
https://doi.org/10.18122/td.2260.boisestate
Comments
https://orcid.org/0000-0002-6032-474X