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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
M. Bruynooghe, “Compile time Garbage Collection”, Proc. IFIP Working Conference on Program Transformation and Verification, Elsevier, 1986.
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.
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.
S. A. Cook, “The Complexity of Theorem-proving Procedures”, Proc. Third ACM Symposium on Theory of Computing, pp. 151–158.
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.
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.
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.
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.
S. K. Debray, “Efficient Dataflow Analysis of Logic Programs”, J. ACM (to appear).
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.
W. Drabent, “Do Logic Programs Resemble Programs in Conventional Languages?”, Proc. IEEE Symposium on Logic Programming, San Francisco, CA, Aug. 1987, pp. 389–396.
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.)
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.)
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.
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.
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.
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.
J. W. Lloyd, Foundations of Logic Programming, Springer Verlag, 1984.
H. Mannila and E. Ukkonen, “Flow Analysis of Prolog Programs”, Proc. Fourth IEEE Symposium on Logic Programming, San Francisco, CA, Sept. 1987.
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.
K. Marriott and H. Søndergaard, personal communication, March 1991.
C. S. Mellish, “Some Global Optimizations for a Prolog Compiler”, J. Logic Programming vol. 2 no. 1 (Apr. 1985), pp. 43–66.
P. Mishra, “Towards a Theory of Types for Prolog”, Proc. IEEE Symposium on Logic Programming, Atlantic City, 1984, pp. 289–298.
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.
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.
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.
E. W. Myers, “A Precise Inter-procedural Data Flow Algorithm”, Proc. Eighth ACM Symposium on Principles of Programming Languages, 1981, pp. 219–230.
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.
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.
T. Sato and H. Tamaki, “Enumeration of Success Patterns in Logic Programs”, Theoretical Computer Science 34 (1984), pp. 227–240.
L. J. Stockmeyer and A. R. Meyer, “Word Problems requiring Exponential Time”, Proc. Fifth ACM Symposium on Theory of Computing, 1973, pp. 1–9.
S.-Å. Tärnlund, “Horn Clause Computability”, BIT IT, pp. 215–226.
J. D. Ullman, “The Complexity of Ordering Subgoals”, Proc. Seventh ACM Symposium on Principles of Database Systems, Austin, TX, March 1988, pp. 74–81.
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.
E. Yardeni and E. Shapiro, “A Type System for Logic Programs”, in Concurrent Prolog: Collected Papers, vol. 2, ed. E. Shapiro, pp. 211–244.
Author information
Authors and Affiliations
Editor information
Rights 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