Title :
Dependence analysis for recursive data
Author_Institution :
Dept. of Comput. Sci., Indiana Univ., Bloomington, IN, USA
Abstract :
The paper describes a general and powerful method for dependence analysis in the presence of recursive data constructions. The particular analysis presented is for identifying partially dead recursive data, but the general framework for representing and manipulating recursive substructures applies to all dependence analyses. The method uses projections based on general regular free grammars extended with notions of live and dead, and defines the analysis as mutually recursive grammar transformers. To guarantee that the analysis terminates, we use carefully designed approximations. We describe how to approximate argument projections with grammars that can be computed without iterating and how to approximate resulting projections with a widening operation. We design an approximation operation that combines two grammars to give the most precise deterministic result possible. All grammar operations used in the analysis have efficient algorithms. The overall analysis yields significantly more precise results than other known methods
Keywords :
grammars; optimising compilers; program verification; trees (mathematics); approximation operation; dependence analyses; dependence analysis; general regular free grammars; grammar operations; mutually recursive grammar transformers; partially dead recursive data; precise deterministic result; recursive data; recursive data constructions; recursive substructures; Algorithm design and analysis; Computer languages; Computer science; Data analysis; Functional programming; High level languages; Information analysis; Optimizing compilers; Program processors; Transformers;
Conference_Titel :
Computer Languages, 1998. Proceedings. 1998 International Conference on
Conference_Location :
Chicago, IL
Print_ISBN :
0-8186-8454-2
DOI :
10.1109/ICCL.1998.674171