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

Linear cost is sometimes quadratic

Published:26 January 1981Publication History

ABSTRACT

In analysis of programs and many other kinds of computation, algorithms are commonly written to have an input P and an output Q, where both P and Q are large and complicated objects. For example, P might be a routing problem and Q might be a solution to P. Although documented and discussed in this exhaustive style, algorithms are sometimes intended for use in contexts with two departures from the one-time analysis of an entire new input. First, the current value of P is the result of a small change to a previous value of P. We want to update the results of the previous analysis without redoing all of the work. Second, accurate information is only wanted in some designated portion of the large output Q. Possibly inaccurate information may appear elsewhere in Q. We want the analysis to be demand-driven: accurate where accuracy is demanded, but not burdened by the cost of providing much more than is demanded. This paper studies demand-driven algorithms capable of updating without extensive reanalysls. Such algorithms are called incremental, in contrast with the one-time analysis of an entire new input contemplated by exhaustive algorithms. In some cases, it is shown that an exhaustive algorithm can be easily recast in an efficient incremental style. Other algorithms for the same problem may be much less amenable to incremental use. It is shown that traditional exhaustive computational complexity bounds are poor predictors of incremental performance. The main examples are taken from global data flow analysis.

References

  1. AC76. Allen, F. E., and Cocke, J. A program data flow analysis procedure. Comm. ACM19 (1976), 137-147. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. AS78. Auslander, M. A., and Strong, H. R. Systematic recursion removal. Comm. ACM21 (1978), 127-134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. BJ78a. Babich, W. A., and Jazayeri, M. The method of attributes for data flow analysis (Part I. Exhaustive analysis). Acta Informatica10 (1978), 245-264.Google ScholarGoogle Scholar
  4. BJ78b. Babich, W. A., and Jazayeri, M. The method of attributes for data flow analysis (Part II. Demand analysis). Acta Informatica10 (1978), 265-272.Google ScholarGoogle Scholar
  5. Ca77. Carter, J. L. A case study of a new code generating technique for compilers. Comm. ACM20 (1977), 914-920. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. GM79. Ghezzi, C., and Mandrioli, D. Incremental parsing. ACM Trans. on Programming Languages and Systems1 (1979), 58-70. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. GM80. Ghezzi, C., and Mandrioli, D. Augmenting parsers to support incrementality. J. ACM27 (1980), 564-579. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. GW76. Graham, S. L., and Wegman, M. A fast and usually linear algorithm for global flow analysis. J. ACM23 (1976), 172-202. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. HU75. Hecht, M. S., and Ullman, J. D. A simple algorithm for global data flow analysis problems. SIAM J. Computing4 (1975), 519-532.Google ScholarGoogle Scholar
  10. Ke75. Kennedy, K. W. Node listings applied to data flow analysis. Proc. 2nd ACM Symp. on Principles of Programming Languages (January 1975), 10-21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Mo79. Moriconi, M. S. A designer/verifier's assistant. IEEE Trans. on Software Engineering5 (1979), 387-401.Google ScholarGoogle Scholar
  12. Pa79. Paige, R. Expression continuity and the formal differentiation of algorithms. Ph. D. Thesis, New York University, September 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ro77. Rosen, B. K. Applications of high-level control flow. Proc. 4th ACM Symp. on Principles of Programming Languages (January 1977), 38-47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Ro80. Rosen, B. K. Monoids for rapid data flow analysis. SIAM J. Computing9 (1980), 159-196.Google ScholarGoogle Scholar
  15. TR80. Teitelbaum, T., and Reps, T. The Cornell Program Synthesizer: a syntax-directed programming environment. TR 80-421, Computer Sci. Dept., Cornell University, Ithaca NY, May 1980.Google ScholarGoogle Scholar
  16. Weg80. Wegman, M. N. Parsing for a structural editor. Proc. 21st IEEE Symp. on Foundations of Computer Science (October, 1980).Google ScholarGoogle ScholarDigital LibraryDigital Library

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 '81: Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
    January 1981
    230 pages
    ISBN:089791029X
    DOI:10.1145/567532

    Copyright © 1981 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: 26 January 1981

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    POPL '81 Paper Acceptance Rate24of121submissions,20%Overall Acceptance Rate824of4,130submissions,20%

    Upcoming Conference

    POPL '25

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader