An incremental algorithm for software analysis
- 1 January 1987
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 22 (1) , 171-179
- https://doi.org/10.1145/24208.24228
Abstract
In programming environments aimed at “industrial strength” software development, there is a need for software tools which facilitate both design and maintenance. These tools should encourage experimentation with different system configurations which enable designers to a priori estimate the associated system complexity and judge the ease of accommodating enhancements. Maintainers should be able to check straightforwardly the ramifications of system changes due to enhancements or “bug fixes”. With interprocedural data flow information about the definition and use of global variables and parameters in a software system, tools can be built to perform these tasks.For large, complex systems, efficient methods for interprocedural analysis are necessarily incremental, as a software system is a dynamically evolving entity. Incremental algorithms update current information about a system in response to a change rather than re-calculating the information by re-analyzing the entire system. This paper reports our development of a general purpose incremental data flow analysis algorithm, which is applicable to both intraprocedural and interprocedural domains. It is based on interval analysis, a technique whose observed performance is linear for most programs; under reasonable assumptions about program flow graphs this linearity can be verified [20].Keywords
This publication has 11 references indexed in Scilit:
- A meta-language and system for nonlocal incremental attribute evaluation in language-based editorsPublished by Association for Computing Machinery (ACM) ,1985
- Analyzing aliases of reference formal parametersPublished by Association for Computing Machinery (ACM) ,1985
- Efficient computation of flow insensitive interprocedural summary informationPublished by Association for Computing Machinery (ACM) ,1984
- Incremental data flow analysisPublished by Association for Computing Machinery (ACM) ,1983
- Optimal-time incremental semantic analysis for syntax-directed editorsPublished by Association for Computing Machinery (ACM) ,1982
- Fast Algorithms for Solving Path ProblemsJournal of the ACM, 1981
- An efficient way to find the side effects of procedure calls and the aliases of variablesPublished by Association for Computing Machinery (ACM) ,1979
- A Transformation System for Developing Recursive ProgramsJournal of the ACM, 1977
- A program data flow analysis procedureCommunications of the ACM, 1976
- Testing flow graph reducibilityJournal of Computer and System Sciences, 1974