An Incremental Algorithm for Algebraic Program Analysis

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Zhou, Chenyu, Fang, Yuzhou, Wang, Jingbo, Wang, Chao
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866915063644815360
author Zhou, Chenyu
Fang, Yuzhou
Wang, Jingbo
Wang, Chao
author_facet Zhou, Chenyu
Fang, Yuzhou
Wang, Jingbo
Wang, Chao
contents We propose a method for conducting algebraic program analysis (APA) incrementally in response to changes of the program under analysis. APA is a program analysis paradigm that consists of two distinct steps: computing a path expression that succinctly summarizes the set of program paths of interest, and interpreting the path expression using a properly-defined semantic algebra to obtain program properties of interest. In this context, the goal of an incremental algorithm is to reduce the analysis time by leveraging the intermediate results computed before the program changes. We have made two main contributions. First, we propose a data structure for efficiently representing path expression as a tree together with a tree-based interpreting method. Second, we propose techniques for efficiently updating the program properties in response to changes of the path expression. We have implemented our method and evaluated it on thirteen Java applications from the DaCapo benchmark suite. The experimental results show that both our method for incrementally computing path expression and our method for incrementally interpreting path expression are effective in speeding up the analysis. Compared to the baseline APA and two state-of-the-art APA methods, the speedup of our method ranges from 160X to 4761X depending on the types of program analyses performed.
format Preprint
id arxiv_https___arxiv_org_abs_2412_10632
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle An Incremental Algorithm for Algebraic Program Analysis
Zhou, Chenyu
Fang, Yuzhou
Wang, Jingbo
Wang, Chao
Programming Languages
Software Engineering
We propose a method for conducting algebraic program analysis (APA) incrementally in response to changes of the program under analysis. APA is a program analysis paradigm that consists of two distinct steps: computing a path expression that succinctly summarizes the set of program paths of interest, and interpreting the path expression using a properly-defined semantic algebra to obtain program properties of interest. In this context, the goal of an incremental algorithm is to reduce the analysis time by leveraging the intermediate results computed before the program changes. We have made two main contributions. First, we propose a data structure for efficiently representing path expression as a tree together with a tree-based interpreting method. Second, we propose techniques for efficiently updating the program properties in response to changes of the path expression. We have implemented our method and evaluated it on thirteen Java applications from the DaCapo benchmark suite. The experimental results show that both our method for incrementally computing path expression and our method for incrementally interpreting path expression are effective in speeding up the analysis. Compared to the baseline APA and two state-of-the-art APA methods, the speedup of our method ranges from 160X to 4761X depending on the types of program analyses performed.
title An Incremental Algorithm for Algebraic Program Analysis
topic Programming Languages
Software Engineering
url https://arxiv.org/abs/2412.10632