Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Efficient computation of interprocedural definition-use chains
Harrold M., Soffa M. ACM Transactions on Programming Languages and Systems16 (2):175-204,1994.Type:Article
Date Reviewed: Mar 1 1995

Harrold and Soffa’s work is a contribution to dataflow analysis, which is an important component of two important parts of compilation--code generation and code optimization. The basic purpose of this paper is to describe an original algorithm for computing interprocedural definition-use chains, by way of an interprocedural flow graph (IFG), taking into account reference parameters, global variables, recursion, aliasing, and separate compilation. Thus it is highly technical, and useful for demonstrating the extreme complexity of a small part of the compilation process. This demonstration is important, because many people think that compilation no longer presents any problems, and that the increasing power of computers means the generation of good code is no longer a useful task.

The paper begins with explanations of the motivations of the work, which are difficult to follow because of the large number of complicated and similar names. Half the paper is devoted to the description of the algorithm itself, although nothing is said about how it was designed or about possible proofs of correctness. The complexity analysis is informal, but is convincing.

A shallow analysis of experimental results follows. Although the authors say that the experiment was done by modifying a C compiler, the only programs studied are in FORTRAN. In fact, almost all the programs are numerical applications. The authors study the ratio of the IFG size to the program size, and say that it is independent of program size. It seems much more strongly related to the procedural complexity of the program, computed as the ratio of the number of procedures to the number of statements, although this seems intuitively predictable. Further studies with different test programs, written in different languages, would have been useful.

The comparison with related work occurs late in the paper and is shallow. The lack of discussion about the precise place of the process described in the paper in a real compiler, and about its relative importance in the compilation process, is regrettable.

Reviewer:  O. Lecarme Review #: CR118226
Bookmark and Share
  Featured Reviewer  
 
Optimization (D.3.4 ... )
 
 
Compilers (D.3.4 ... )
 
 
Programming Environments (D.2.6 )
 
 
Testing And Debugging (D.2.5 )
 
Would you recommend this review?
yes
no
Other reviews under "Optimization": Date
Finite constants
Steffen B., Knoop J. Theoretical Computer Science 80(2): 303-318, 1991. Type: Article
May 1 1992
Optimizing schemes for structured programming language processors
Tsuji T., Ellis Horwood, Upper Saddle River, NJ, 1990. Type: Book (9780138551230)
Apr 1 1992
Optimizing compilers for parallel computers (videotape)
Allen F., University Video Communications, Stanford, CA, 1991. Type: Book
Aug 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy