ACM Home Page
Please provide us with feedback. Feedback
Summarizing graphs by regular expressions
Full text PdfPdf (963 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
Austin, Texas
Pages: 203 - 216  
Year of Publication: 1983
ISBN:0-89791-090-7
Author
Mark Wegman  IBM Thomas J. Watson Research Center
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 35,   Citation Count: 4
Additional Information:

abstract   references   cited by   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/567067.567088
What is a DOI?

ABSTRACT

This paper shows how to rapidly determine the path relationships between k different elements of a graph (of the type primarily resulting from programs) in time proportional to k log k. Given the path relations between elements u,v, and w, it is easy to answer questions like "is there a path from u to w?" and "is there a path from u to w which does not go through v?" (The elements can be either nodes or edges.)This algorithm can be used in a wide variety of contexts. For example, in order to prove that whenever control reaches a point p, the last assignment of a value to a variable, v, has always been of the form v := c, where c is a certain constant, it is only necessary to know the path relations between the point p and all assignments to that variable.Ordinarily one is interested in the possible points, where a variable was assigned its current value (definition points), and at the points at which that value is used. Previously, all flow analysis algorithms would compute the definition points of all variables at all nodes in the graph, despite the fact that any given node may use only one of those variables.This algorithm may also be a generally useful graph algorithm. It can compute transitive closure more rapidly than the standard algorithm using the current best matrix multiplication algorithm on the kinds of graphs resulting from programs. The algorithm proceeds by preprocessing the graph, creating tables that can be used later to rapidly determine flow relationships between any sections of the program. In addition, small changes to the graph need only result in small changes to the tables. The algorithm is therefore suitable for incremental analysis.


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
2
 
3
 
4
Harel, Dov, 'A linear time algorithm for the lowest common ancestors problem' 21st Annual Symposium on Foundations of Computer Science, Syracuse N.Y., Oct. 1980 pp. 308-319
5
 
6
Allen, F. E. et. al. 'The Experimental Compiling System' IBM Journal of Research and Development, vol 24, no 6, Nov. 1980 pp. 695-715.
7
8
 
9
Cocke, J., private communication to a number of people, 1961-62(?).
10
 
11
Ferrante, J. personal communication.
 
12
Coppersmith, D. and Winograd, S., On the Asymptotic Complexity of Matrix Multiplication, to appear SIAM Journal on Computing, Aug 82 (also FOCS 1981.
 
13
Aho Hopcroft and Ullman, Design and Analysis of Algorithms, Addison-Wesley, 1975.
14