skip to main content
10.1145/567067.567088acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

Summarizing graphs by regular expressions

Published:24 January 1983Publication History

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

  1. Kou, L. 'On Live-Dead Analysis for Global Data Flow Problems' JACM Vol 24, No. 3 pp. 473-483 1977.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Graham, S. L. and Wegman, M. 'A Fast and Usually Linear Algorithm for Global Flow Analysis' JACM Vol. 23, No. 1 January 1976 pp.172-202.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Wegman, M. 'General and Efficient Methods for Global Code Improvement' Ph.D. Dissertation, Univ. of Cal. at Berkeley, Dec. 1981.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  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]]Google ScholarGoogle Scholar
  5. Rosen, B. K., 'Linear Cost is Sometimes Quadratic' 8th Annual Principles of Programming Languages, Jan. 1981, pp. 117-125]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  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.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Tarjan, R. E., 'A Unified Approach to Path Problems', J. ACM 28, 3 (July 1981), 581-593.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Tarjan, R. E., 'Fast Algorithms for Solving Path Problems', J. ACM 28, 3 (July 1981), 594-614.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cocke, J., private communication to a number of people, 1961-62(?).]]Google ScholarGoogle Scholar
  10. Tarjan, R. E., 'Applications of Path Compression on Balanced Trees', J. ACM 26,4(Oct 79) 690-715.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Ferrante, J. personal communication.]]Google ScholarGoogle Scholar
  12. Coppersmith, D. and Winograd, S., On the Asymptotic Complexity of Matrix Multiplication, to appear SIAM Journal on Computing, Aug 82 (also FOCS 1981.]]Google ScholarGoogle Scholar
  13. Aho Hopcroft and Ullman, Design and Analysis of Algorithms, Addison-Wesley, 1975.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kildall, G. A. A unified approach to global program optimization. Conf. Records of the Second ACM Symposium on Principles of Programming Languages, Oct. 1973, pp. 193-206.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  1. Summarizing graphs by regular expressions

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      POPL '83: Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
      January 1983
      312 pages
      ISBN:0897910907
      DOI:10.1145/567067

      Copyright © 1983 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 24 January 1983

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      POPL '83 Paper Acceptance Rate28of170submissions,16%Overall Acceptance Rate790of3,982submissions,20%

      Upcoming Conference

      POPL '25

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader