ACM Home Page
Please provide us with feedback. Feedback
High-level data flow analysis
Full text PdfPdf (1.18 MB)
Source
Communications of the ACM archive
Volume 20 ,  Issue 10  (October 1977) table of contents
Pages: 712 - 724  
Year of Publication: 1977
ISSN:0001-0782
Author
Barry K. Rosen  IBM Thomas J. Watson Research Center, Yorktown Heights, NY
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 54,   Citation Count: 26
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/359842.359849
What is a DOI?

ABSTRACT

In contrast to the predominant use of low-level intermediate text, high-level data flow analysis deals with programs essentially at source level and exploits the control flow information implicit in the parse tree. The need for high-level flow analysis arises from several aspects of recent work on advanced methods of program certification and optimization. This paper proposes a simple general method of high-level data flow analysis that allows free use of escape and jump statements, avoids large graphs when compiling large programs, facilitates updating of data flow information to reflect program changes, and derives new global information helpful in solving many familiar global flow analysis problems. An illustrative application to live variable analysis is presented. Many of the graphs involved are constructed and analyzed before any programs are compiled, thus avoiding certain costs that low-level methods incur repeatedly at compile time.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Allen, F.E. Program optimization.Ann. Rev. in Autom. Prog. 5 (1969), 239-307.
 
2
Allen, F.E. Interprocedural data flow analysis. Information Processing 74, North-Holland Pub. Co., Amsterdam, 1974, pp. 398- 402.
 
3
Backus, J.W., et al. The FORTRAN automatic coding system. Proc. Western Joint Comptr. Conf., Feb. 1957, pp. 188-198.
4
5
 
6
 
7
Fosdick, L.D., and Osterweil, L.J. Data flow analysis in software reliability. Rep. CU-CS-087-76, Comptr. Sci. Dept., Colorado U., Boulder, Colo., May 1976.
8
9
 
10
Hecht, M.S., and Schaffer, J.B. Ideas on the design of a quad improver for SIMPL-T, Pt. I. Tech. Rep. TR-405, Comptr. Sci. Dept., U. of Maryland, College Park, Md., Aug. 1975.
 
11
Hecht, M.S., and Ullman, J.D. A simple algorithm for global data flow analysis problems. SIAM J. Comptng. 4 (1975), 519-532.
12
13
 
14
Kennedy, K. A global flow analysis algorithm. Int. J. Comptr. Math. (A) 3 (1971), 5-15.
15
16
17
18
 
19
Knuth, D.E., and Zahn, C.T. Ill-chosen use of "event". Comm. ACM 18, 6 (June 1975), 360.
20
21
22
 
23
Osterweil, L.J., and Fosdick, L.D. Data flow analysis as an aid in documentation, assertion generation, validation, and error detection. Rep. CU-CS-055-74, Comptr. Sci. Dept., Colorado U., Boulder, Colo., Sept. 1974.
 
24
Rosen, B.K. Correctness of parallel programs: the Church- Rosser approach. Theoretical Comptr. Sci. 2 (1976), 183-207.
25
 
26
 
27
Schneck, P.B., and Angel, E. A FORTRAN to FORTRAN optimising compiler. Computer J. 16 (1973), 322-330.
 
28
 
29
Spillman, T.C. Exposing side effects in a PL/I optimizing compiler. Information Processing 71, North Holland Pub. CO., Amsterdam, 1971, pp. 378-381.
 
30
Tarjan, R. Depth-first search and linear graph algorithms. SIAM J. Comptng. 1 (1972), 146-160.
 
31
Ullman, J.D. Data flow analysis. Second USA-Japan Comptr. Conf., 1975, pp. 335-342.
 
32
Wegbreit, B. Property extraction in well-founded property sets. IEEE Trans. on Software Engineering SE-1 (1975), 270-285.
 
33
 
34
 
35
Zelkowitz, M.V., and Bail, W.G. Optimization of structured programs. Software Practice and Experience 4 (1974), 51-57.

CITED BY  26