An even faster solver for general systems of equations
We present a new algorithm which computes a partial approximate solution for a system of equations. It is local in that it considers as few variables as necessary in order to compute the values of those variables we are interested in, it is generic in that it makes no assumptions on the application domain, and it is general in that the algorithm does not depend on any specific properties of right-hand sides of equations. For instance, monotonicity is not required. However, in case the right-hand sides satisfy some weak monotonicity property, our algorithm returns the (uniquely defined) least solution.
The algorithm meets the best known theoretical worstcase complexity of similar algorithms. For the application of analyzing logic languages, it also gives the best practical results on most of our real world benchmark programs.
KeywordsLogic Program Time Stamp Complete Lattice Abstract Interpretation Variable Assignment
Unable to display preview. Download preview PDF.
- 1.F. Bourdoncle. Abstract Interpretation by Dynamic Partitioning. Journal of Functional Programming, 2(4), 1992.Google Scholar
- 2.B. Le Charlier and P. Van Hentenryck. A Universal Top-Down Fixpoint Algorithm. Technical report 92-22, Institute of Computer Science, University of Namur, Belgium, 1992.Google Scholar
- 3.B. Le Charlier and P. Van Hentenryck. Experimental evaluation of a generic abstract interpretation algorithm for Prolog. TOPLAS, 16(1):35–101, 1994.Google Scholar
- 4.R. Cleaveland and B. Steffen. A Linear-Time Model Checking Algorithm for the Alternation-Free Modal Mu-Calculus. In CAV'91. Springer, LNCS 575, 1991.Google Scholar
- 5.A. Cortesi, G. Filé, and W. Winsborough. Prop revisited: Propositional formulas as abstract domain for groundness analysis. In LICS'91, 322–327, Amsterdam, The Netherlands, 1991.Google Scholar
- 6.P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In POPL'77, 238–252, 1977.Google Scholar
- 9.Christian Fecht. GENA — a Tool for Generating Prolog Analyzers from Specifications. SAS'95, 418–419. Springer Verlang, LNCS 983, 1995.Google Scholar
- 10.M.S. Hecht. Flow Analysis of Computer Programs. Amsterdam: Elsevier North-Holland, 1977.Google Scholar
- 12.N. JØrgensen. Finding Fixpoints in Finite Function Spaces Using Neededness Analysis and Chaotic Iteration. In SAS'94, 329–345. Springer, LNCS 864, 1994.Google Scholar
- 13.G.A. Kildall. A Unified Approach to Global Program Optimization. In POPL'73, 194–206, 1973.Google Scholar
- 14.K. Marriott, H. SØndergaard, and N.D. Jones. Denotational Abstract Interpretation of Logic Programs. ACM Transactions of Programming Languages and Systems, 16(3):607–648, 1994.Google Scholar
- 15.M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S.S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Application, 189–233. Prentice-Hall, 1981.Google Scholar
- 16.P. Van Hentenryck, A. Cortesi, and B. Le Charlier. Evaluation of the domain Prop. The Journal of Logic Programming, 23(3):237–278, 1995.Google Scholar
- 17.B. Vergauwen, J. Wauman, and J. Lewi. Efficient fixpoint computation. In SAS'94, 314–328. Springer, LNCS 864, 1994.Google Scholar
- 18.R. Wilhelm and D. Maurer. Compiler Construction. Addison-Wesley, 1995.Google Scholar