Skip to main content

On the complexity of dataflow analysis of logic programs

  • Conference paper
  • First Online:
Automata, Languages and Programming (ICALP 1992)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 623))

Included in the following conference series:

Abstract

It is widely held that there is a correlation between complexity and precision in dataflow analysis, in the sense that the more precise an analysis algorithm, the more computationally expensive it must be. The details of this correspondence, however, appear to not have been explored extensively. This paper reports some results on this tradeoff in the context of Horn logic programs. A formal notion of the “precision” of an analysis algorithm is proposed, and this is used to characterize the worst case computational complexity of a number of dataflow analysis algorithms with different degrees of precision.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. P. A. Bloniarz, H. B. Hunt III, and D. J. Rosenkrantz, “Algebraic Structures with Hard Equivalence and Minimization Problems”, J. ACM vol. 31 no. 4, Oct. 1984, pp. 879–904.

    Article  Google Scholar 

  2. M. Bruynooghe, “Compile time Garbage Collection”, Proc. IFIP Working Conference on Program Transformation and Verification, Elsevier, 1986.

    Google Scholar 

  3. J.-H. Chang, A. M. Despain, and D. DeGroot, “AND-Parallelisrn of Logic Programs Based on A Static Data Dependency Analysis”, in Digest of Papers, Compcon 85, IEEE Computer Society, Feb. 1985, pp. 218–225.

    Google Scholar 

  4. M. Codish, D. Dams, and Y. Yardeni, “Abstract Unification and a Bottom-up Analysis to Detect Aliasing in Logic Programs”, Technical Report CS90-10, Department of Applied Mathematics and Computer Science, Weizmann Institute of Science, Rehovot, Israel, May 1990.

    Google Scholar 

  5. S. A. Cook, “The Complexity of Theorem-proving Procedures”, Proc. Third ACM Symposium on Theory of Computing, pp. 151–158.

    Google Scholar 

  6. P. Cousot and R. Cousot, “Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Apporoximation of Fixpoints”, Proc. Fourth ACM Symposium on Principles of Programming Languages, 1977, pp. 238–252.

    Google Scholar 

  7. P. Cousot, and R. Cousot, “Systematic Design of Program Analysis Frame-works”, Proc. Sixth ACM Symposium on Principles of Programming Languages, 1979, pp. 269–282.

    Google Scholar 

  8. S. K. Debray and D. S. Warren, “Automatic Mode Inference for Logic Programs”, J. Logic Programming vol. 5 no. 3 (Sept. 1988), pp. 207–229.

    Article  Google Scholar 

  9. S. K. Debray, “Static Inference of Modes and Data Dependencies in Logic Programs”, ACM Transactions on Programming Languages and Systems vol. 11 no. 3, July 1989, pp. 419–450.

    Google Scholar 

  10. S. K. Debray, “Efficient Dataflow Analysis of Logic Programs”, J. ACM (to appear).

    Google Scholar 

  11. S. K. Debray, “On the Complexity of Dataflow Analysis of Logic Programs”, Technical Report TR 91-27, Dept. of Computer Science, The University of Arizona, Tucson, AZ 85721, USA, Dec. 1991.

    Google Scholar 

  12. W. Drabent, “Do Logic Programs Resemble Programs in Conventional Languages?”, Proc. IEEE Symposium on Logic Programming, San Francisco, CA, Aug. 1987, pp. 389–396.

    Google Scholar 

  13. N. Heintze and J. Jaffar, “A Finite Presentation Theorem for Approximating Logic Programs”, Research Report RC-16089, IBM T. J. Watson Research Center, Yorktown Heights, August 1990. (Preliminary version appeared in Proc. Seventeenth ACM Symposium on Principles of Programming Languages, Jan. 1990.)

    Google Scholar 

  14. N. Heintze and J. Jaffar, “A Decision Procedure for a Class of Set Constraints”, Technical Report CMU-CS-91-110, School of Computer Science, Carnegie Mellon University, Pittsburgh, February 1991. (Preliminary version appeared in Proc. Fifth IEEE Symposium on Logic in Computer Science.)

    Google Scholar 

  15. P. Hudak and J. Young, “Higher-Order Strictness Analysis in the Untyped Lambda Calculus”, Proc. Thirteenth ACM Symp. on Principles of Programming Languages, Jan. 1986.

    Google Scholar 

  16. D. Jacobs and A. Langen, “Accurate and Efficient Approximation of Variable Aliasing in Logic Programs”, Proc. North American Conference on Logic Programming, Cleveland, Ohio, Oct. 1989, pp. 154–165.

    Google Scholar 

  17. G. Janssens, “Deriving Run-time Properties of Logic Programs by means of Abstract Interpretation”, PhD Dissertation, Dept. of Computer Science, Katholieke Universiteit Leuven, Belgium, March 1990.

    Google Scholar 

  18. N. D. Jones and S. S. Muchnick, “Complexity of Flow Analysis, Inductive Assertion Synthesis, and a Language due to Dijkstra”, in Program Flow Analysis: Theory and Applications, eds. S. S. Muchnick and N. D. Jones, Prentice Hall, 1981, pp. 381–393.

    Google Scholar 

  19. J. W. Lloyd, Foundations of Logic Programming, Springer Verlag, 1984.

    Google Scholar 

  20. H. Mannila and E. Ukkonen, “Flow Analysis of Prolog Programs”, Proc. Fourth IEEE Symposium on Logic Programming, San Francisco, CA, Sept. 1987.

    Google Scholar 

  21. K. Marriott, H. Søndergaard and N. D. Jones, “Denotational Abstract Interpretation of Logic Programs”, Manuscript, Dept. of Computer Science, University of Melbourne, May 1990.

    Google Scholar 

  22. K. Marriott and H. Søndergaard, personal communication, March 1991.

    Google Scholar 

  23. C. S. Mellish, “Some Global Optimizations for a Prolog Compiler”, J. Logic Programming vol. 2 no. 1 (Apr. 1985), pp. 43–66.

    Google Scholar 

  24. P. Mishra, “Towards a Theory of Types for Prolog”, Proc. IEEE Symposium on Logic Programming, Atlantic City, 1984, pp. 289–298.

    Google Scholar 

  25. A. Mulkers, W. Winsborough and M. Bruynooghe, “Analysis of Shared Data Structures for Compile-Time Garbage Collection in Logic Programs”, Proc. Seventh International Conference on Logic Programming, Jerusalem, Israel, June 1990, pp. 747–764.

    Google Scholar 

  26. K. Muthukumar and M. Hermenegildo, “Determination of Variable Dependence Information at Compile Time through Abstract Interpretation”, Proc. North American Conference on Logic Programming, Cleveland, Ohio, Oct. 1989, pp. 166–185.

    Google Scholar 

  27. K. Muthukumar and M. Hermenegildo, “Combined Determination of Sharing and Freeness of Program Variables through Abstract Interpretation“, Proc. Eighth International Conference on Logic Programming, Paris, June 1991, pp. 49–63.

    Google Scholar 

  28. E. W. Myers, “A Precise Inter-procedural Data Flow Algorithm”, Proc. Eighth ACM Symposium on Principles of Programming Languages, 1981, pp. 219–230.

    Google Scholar 

  29. R. Ramakrishnan and S. Sudarshan, “Top-down vs. Bottom-up Revisited”, Proc. 1991 International Symposium on Logic Programming, San Diego, Oct. 1991, pp. 321–336. MIT Press.

    Google Scholar 

  30. Y. Sagiv and J. D. Ullman, “Complexity of a Top-Down Capture Rule”, Technical Report STAN-CS-84-1009, Dept. of Computer Science, Stanford University, Stanford, CA, July 1984.

    Google Scholar 

  31. T. Sato and H. Tamaki, “Enumeration of Success Patterns in Logic Programs”, Theoretical Computer Science 34 (1984), pp. 227–240.

    Article  Google Scholar 

  32. L. J. Stockmeyer and A. R. Meyer, “Word Problems requiring Exponential Time”, Proc. Fifth ACM Symposium on Theory of Computing, 1973, pp. 1–9.

    Google Scholar 

  33. S.-Å. Tärnlund, “Horn Clause Computability”, BIT IT, pp. 215–226.

    Google Scholar 

  34. J. D. Ullman, “The Complexity of Ordering Subgoals”, Proc. Seventh ACM Symposium on Principles of Database Systems, Austin, TX, March 1988, pp. 74–81.

    Google Scholar 

  35. Ullman, J.D., “Bottom-Up Beats Top-Down for Datalog”, In Proceedings of the ACM Symposium on Principles of Database Systems, pages 140–150, Philadelphia, PA, 1989.

    Google Scholar 

  36. E. Yardeni and E. Shapiro, “A Type System for Logic Programs”, in Concurrent Prolog: Collected Papers, vol. 2, ed. E. Shapiro, pp. 211–244.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

W. Kuich

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Debray, S.K. (1992). On the complexity of dataflow analysis of logic programs. In: Kuich, W. (eds) Automata, Languages and Programming. ICALP 1992. Lecture Notes in Computer Science, vol 623. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55719-9_100

Download citation

  • DOI: https://doi.org/10.1007/3-540-55719-9_100

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55719-7

  • Online ISBN: 978-3-540-47278-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics