ACM SIGPLAN Notices · 1987 · 32 citations · 12 references
ComputingComputer ScienceAlgorithmsSoftware EngineeringSystems AnalysisControl-flow AnalysisData-flow AnalysisSoftware DesignSoftware EvolutionSoftware MaintenanceStatic AnalysisComplexityControl Flow GraphsInformation Flow GraphsInterprocedural AnalysisInterprocedural Data-flow AnalysisInterprocedural Dataflow AnalysisInterval AnalysisIntraprocedural Data-flow Analysis
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].
12
A Transformation System for Developing Recursive Programs
R. M. Burstall, John Darlington · Journal of the ACM · 1977 · 1.3K citations · Full text
A program data flow analysis procedure
Frances Allen, John Cocke · Communications of the ACM · 1976 · 410 citations · Full text
Constructing the Call Graph of a Program
Barbara G. Ryder · IEEE Transactions on Software Engineering · 1979 · 300 citations
Fast Algorithms for Solving Path Problems
Robert E. Tarjan · Journal of the ACM · 1981 · 284 citations · Full text